Short answer
It is a list of pointers which are pointing to the corresponding commit. I recommend you read about HEAD
and origin
.
Commits and pointers
In git
, you have commits and pointers moving in between those commits. A branch is just a pointer which points to a commit. Say you have a branch mybranch
, then mybranch
is just a pointer. If you commit on that branch, the pointer mybranch
just moves on to that commit.
The HEAD pointer
HEAD
: the HEAD
pointer points to the current commit your repo is on. In your case, it is pointing to commit 69b6309f09365c09a2fe10f09aee801d1fae29ee
, that is: your repo is now on commit 69b6309f09365c09a2fe10f09aee801d1fae29ee
. The content in parenthesis is a list of other pointers which point to the same commit as HEAD
, which, in your case are master
and edeviserBranch
. From that information, you can see that master
and edeviserBranch
have not diverged yet. You probably pushed the last commit with text added foo
onto master
and then created a new branch edeviserBranch
from master
.
The working area
origin
: the default name that git
gives to your remote repo. With origin/<pointer>
, you can access branches in your working area. The working area is a space between your local and remote repositories. git fetch origin
downloads the data from your remote repo to the working area of your local repo. It doesn't merge any data, it just downloads it. An example to make the concept of working area clear:
git fetch origin # update data from remote origin.
# For example, your remote branch edeviserBranch will be downloaded to your working area
# and can be accessed from origin/edeviserBranch.
git checkout master # go to your local master branch
git merge origin/edeviserBranch # merge branch edeviserBranch from your working area
# to your local master branch
The origin/HEAD pointer
origin/HEAD
: a pointer in your working area which points to the default commit that will be checked out by someone cloning your repository.
According to the output of git log
, pointer origin/master
and origin/HEAD
both point to commit 59a08270fb730db259a8d5819bb585a613024d97
.
If your working area is not synchronized with your remote repo, and you execute git fetch origin
(and doing so, you update your working area with your remote repo), those pointers will change.