From: Steinar Bang <sb@dod.no>
To: emacs-devel@gnu.org
Subject: Re: Stash
Date: Mon, 06 Apr 2015 16:53:44 +0200 [thread overview]
Message-ID: <86zj6l5mvb.fsf@dod.no> (raw)
In-Reply-To: 86fv8d7ntk.fsf@dod.no
>>>>> Steinar Bang <sb@dod.no>:
>>>>> Richard Stallman <rms@gnu.org>:
>> I did
>>> git reset --hard HEAD
>> since I had installed all my changes.
>> Then I did 'git pull' and it reported a lot of things.
>> Then I did 'git status' which produced this:
>> # On branch master
>> # Your branch is ahead of 'origin/master' by 2 commits.
>> #
>> nothing to commit (working directory clean)
>> What does that second line "ahead of" mean?
> It means that the branch master has two commits that aren't in
> origin/master (which is your local copy of what's on savannah).
Speficically, it's like this:
A git branch is a list of commits, each pointing to its ancestor
(except for merge commits, which have two ancestors).
Git branches can be (er...) branched, and from the fork of the branch
and backwards, the branches are the same.
Once you have hold of a commit, you actually have hold of a branch with
that commit at its head.
Branch names like "master" and "origin/master" are just symbolic names
pointing to a particular commit.
So what you have (this needs a fixed width font), is:
origin/master
|
v
--o<--o<--o<--o<--o
^
|
master
Ie. there is a chain of commits in your local repository forming a
history. The local branch "master" points to one commit, and the branch
"origin/master" (which is your local representation of the state on
savannah).
When you do
git fetch
changes are fetched from savanna and added to the list pointed to by
origin/master (actually, the commits are just added, since they already
are pointing back to their ancestor, and origin/master is just changed
to point to the newest commit from savannah).
If you have no changes on your local branch "master", the master branch
can be moved in the same way, ie. "master" can be changed to point to
the newest commit from savannah (this is what's known as a "fast
forward" merge)
If you have commits on your "master", "origin/master" and "master" needs
to be merged, just like any branch.
What I proposed, was to first create a new branch holding the current
state of master, and then reset "master" to point to the same commit as
"origin/master":
origin/master
|
v
--o<--o<--o<--o<--o
^ ^
| |
| two-unexpected-commits-on-master
master
"origin/master" and "master" are actually files:
.git/refs/heads/master
.git/refs/remotes/origin/master
Inside the files is a sha1 hash uniquely defining a commit.
next prev parent reply other threads:[~2015-04-06 14:53 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-05 17:42 Stash Richard Stallman
2015-04-05 18:31 ` Stash Steinar Bang
2015-04-05 18:38 ` Stash Eli Zaretskii
2015-04-06 5:50 ` Stash Richard Stallman
2015-04-06 6:37 ` Stash Steinar Bang
2015-04-06 7:35 ` Stash Eli Zaretskii
2015-04-06 7:57 ` Stash Eli Zaretskii
2015-04-07 19:31 ` Stash Stephen J. Turnbull
2015-04-08 5:28 ` Stash Eli Zaretskii
2015-04-06 5:50 ` Stash Richard Stallman
2015-04-06 6:50 ` Stash Steinar Bang
2015-04-06 6:55 ` Stash Eli Zaretskii
2015-04-06 11:25 ` Stash Mathias Megyei
2015-04-06 11:30 ` Stash Eli Zaretskii
2015-04-06 11:56 ` Stash Yuri Khan
2015-04-06 12:06 ` Stash João Távora
2015-04-06 12:25 ` Stash Eli Zaretskii
2015-04-06 12:19 ` Stash Eli Zaretskii
2015-04-06 11:59 ` Stash João Távora
2015-04-06 12:21 ` Stash Eli Zaretskii
2015-04-06 13:06 ` Stash João Távora
2015-04-06 6:55 ` Stash Eli Zaretskii
2015-04-06 14:53 ` Steinar Bang [this message]
2015-04-06 15:07 ` Stash Harald Hanche-Olsen
2015-04-06 18:48 ` Stash Steinar Bang
2015-04-06 5:51 ` Stash Richard Stallman
2015-04-06 7:29 ` Stash Eli Zaretskii
2015-04-06 7:55 ` Stash Harald Hanche-Olsen
2015-04-07 16:13 ` Stash Richard Stallman
2015-04-07 16:48 ` Stash Eli Zaretskii
2015-04-07 19:51 ` Stash Stephen J. Turnbull
2015-04-08 18:20 ` Stash Richard Stallman
2015-04-08 18:21 ` Stash Richard Stallman
2015-04-08 18:33 ` Stash Eli Zaretskii
2015-04-09 13:16 ` Stash Richard Stallman
2015-04-09 13:45 ` Stash Eli Zaretskii
2015-04-10 10:57 ` Stash Richard Stallman
2015-04-08 18:21 ` Stash Richard Stallman
2015-04-07 16:58 ` Stash Andreas Schwab
2015-04-08 18:21 ` Stash Richard Stallman
2015-04-09 17:07 ` Stash Andreas Schwab
2015-04-10 10:58 ` Stash Richard Stallman
2015-04-07 20:12 ` Stash Stephen J. Turnbull
2015-04-09 13:16 ` Stash Richard Stallman
2015-04-09 16:53 ` Stash Stephen J. Turnbull
2015-04-10 10:58 ` Stash Richard Stallman
2015-04-10 11:18 ` Stash Eli Zaretskii
2015-04-10 13:52 ` Stash Stephen J. Turnbull
2015-04-05 18:40 ` Stash Paul Eggert
2015-04-05 19:25 ` Stash Harald Hanche-Olsen
2015-04-05 19:59 ` Stash Paul Eggert
2015-04-05 19:26 ` Stash Steinar Bang
2015-04-05 20:18 ` Stash Stephen J. Turnbull
2015-04-05 19:41 ` Stash Harald Hanche-Olsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86zj6l5mvb.fsf@dod.no \
--to=sb@dod.no \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.