git help revisions
brings up http://git-scm.com/docs/gitrevisions, which describes all the the most common ways to reference commits:
HEAD
names the commit on which you based the changes in the working tree.
FETCH_HEAD
records the branch which you fetched from a remote repository with your last git fetch invocation.
ORIG_HEAD
is created by commands that move your HEAD
in a drastic way, to record the position of the HEAD
before their operation, so that you can easily change the tip of the branch back to the state before you ran them.
MERGE_HEAD
records the commit(s) which you are merging into your branch when you run git merge.
CHERRY_PICK_HEAD
records the commit which you are cherry-picking when you run git cherry-pick.
From the git source, you can also find out about BISECT_HEAD
, REVERT_HEAD
, REJECT_NON_FF_HEAD
and several others that you will almost certainly never need.
That reference also explains suffixes (^N
, ~N
, @{...}
), ranges (..
vs ...
), and more.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…