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 checkout v2^{} | checkout the v2 tag (not v2 branch) |
The 3rd argument in each of these commands is a gitrevision. These gitrevisions can be passed to many Git commands.
Common git revisions
| Reference | Description |
|---|---|
git show dae68e1 | sha1 |
git show HEAD | reference |
git show v1.0.0 | tag |
git show master | local branch |
git show origin/master | remote branch |
git show master~2 | 2 commits back from master |
git show master..fix | reachable from fix but not master |
git show master...fix | reachable from fix and master, but not both |
These are just the common ones, there’s a lot more below! (These work in many other commands, not just git show.)
Reference
Commits
git checkout dae68e1 | sha1 |
References
| Example | Description |
|---|---|
git checkout HEAD | reference |
git checkout master | branch |
git checkout v1.0.0 | tag |
git checkout origin/master | aka, refs/remotes/origin/master |
git checkout heads/master | aka, refs/heads/master |
Searching back
| Example | Description |
|---|---|
git checkout master@{yesterday} | also 1 day ago, etc |
git checkout master@{2} | 2nd prior value |
git checkout master@{push} | where master would push to |
git checkout master^ | parent commit |
git checkout master^2 | 2nd parent, eg, what it merged |
git checkout master~5 | 5 parents back |
git checkout master^0 | this commit; disambiguates from tags |
git checkout v0.99.8^{tag} | can be commit, tag, tree, object |
git checkout v0.99.8^{} | defaults to {tag} |
git checkout ":/fix bug" | searches commit messages |
Other
HEAD:README | … |
0:README | (0 to 3) … |
Ranges
Ranges
git log master | reachable parents from master |
git log ^master | exclude reachable parents from master |
git log master..fix | reachable from fix but not master |
git log master...fix | reachable from fix and master, but not both |
git log HEAD^@ | parents of HEAD |
git log HEAD^! | HEAD, then excluding parents’s ancestors |
git log HEAD^{:/fix} | search previous HEADs matching criteria |
Ranges illustration
A ─┬─ E ── F ── G master │ └─ B ── C ── D fix git log master..fix | BCD |
git log master...fix | BCD and EFG |
References
- Git Tools - Revision Selection (git-scm.com)
- gitrevisions(7) (kernel.org)
0 Comments for this cheatsheet. Write yours!