Commits
References
HEAD |
reference |
master |
branch |
v1.0.0 |
tag |
origin/master |
aka, refs/remotes/origin/master |
heads/master |
aka, refs/heads/master |
Searching back
master@{yesterday} |
also 1 day ago, etc |
master@{2} |
2nd prior value |
master@{push} |
where master would push to |
master^ |
parent commit |
master^2 |
2nd parent, eg, what it merged |
master~5 |
5 parents back |
master^0 |
this commit; disambiguates from tags |
v0.99.8^{tag} |
can be commit, tag, tree, object |
v0.99.8^{} |
defaults to {tag} |
:/fix bug |
searches commit messages |
Other
HEAD:README |
… |
0:README |
(0 to 3) … |
Ranges
master |
reachable parents from master |
^master |
exclude reachable parents from master |
master..fix |
reachable from fix but not master |
master...fix |
reachable from fix and master, but not both |
HEAD^@ |
parents of HEAD |
HEAD^! |
HEAD, then excluding parents’s ancestors |
HEAD^{:/fix} |
search previous HEADs matching criteria |
Ranges illustration
A -+- E - F - G master
'- B - C - D fix
master..fix = BCD
master...fix = BCD and EFG
Example usages
git log master...develop # inspect differences in branches
git rebase -i HEAD~3 # rebase last 3 commits
git reset --hard HEAD@{2} # undo last operation that changed HEAD
git show ":/fix bug" # search commit with regex
git checkout v2^{} # checkout the `v2` tag (not `v2` branch)