cheatsheets/git-revisions.md

1.1 KiB

title
Git revisions

Single commits

  • commits:

    • dae68e1 (sha1)
  • refs:

    • HEAD (ref)
    • master (branch)
    • v1.0.0 (tag)
    • origin/master (aka, refs/remotes/origin/master)
    • heads/master
    • refs/heads/master
  • search back:

    • master@{yesterday}
    • master@{2} (2nd prior value)
    • master@{push} (where master would push to)
    • master^ (parent)
    • 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)

Ranges illustration

 F   - master
 E C - fix
 D B
 |-'
 A

master..fix   = BC
master...fix  = BC and FED