A list of revision specifications you can use with git log and many other Git commands. Summarized from gitrevisions(7) man page.
     
  
  
    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
  
 
  
0 Comments 这个速查表。 写评论!