Point 1:
Each line in the Commit Graph corresponds to a commit. Branches, tags and HEAD are visualized as follows:
- The tips of local branches are shown as green rectangles
- The tips of remote branches are shown as grey rectangles
- The local HEAD is shown as a white rectangle
- Tags are shown as yellow rectangles
Point 2:
Git References
Git References are also known shortly as Refs.
They
comprise
- branches
- remote-tracking branches
- tags
They all are named with a path using '/' as path separator and are starting with "refs".
- Local branches start with "refs/heads/"
- Remote tracking branches start with "refs/remotes/". Remote tracking branches proxy branches located in a remote repository so that their state at the time of the last transport operation can be queried also when no connection to the repository is available (offline).
- Tags start with "refs/tags/"
Ref names can be abbreviated as long as the abbreviated form is unique.
E.g.
- "master" is short for "refs/heads/master"
- "origin/master" is short for "refs/remotes/origin/master"
- "v1.0.1" is short for "refs/tags/v1.0.1"
There is also a number of "reserved" names for Refs that are useful for certain scenarios:
Ref Name | Remark |
HEAD | Points to the currently checkout out commit |
FETCH_HEAD | Points to the result of the last fetch operation |
ORIG_HEAD | Points to the commit that was checked out before a merge or rebse operation was started |
For a complete list for Ref names and the order of precedence if multiple references have the same shorthand form see the section "Specifying Revisions" section of git rev-parse.