承諾祖先連鎖革命等
$ git reset --hard HEAD^ # discard last commit
$ git rebase --interactive HEAD~5 # rebase last 4 commits
字尾^
到 revision 參數列示該提交物件的第一個父物件。^<n>
表示第 n 個父母(即 <rev>^
相當於 <rev>^1
)。
字尾~<n>
到版本引數意味著提交物件是指定提交物件的第 n 代生成祖先,僅跟隨第一個父物件。這意味著例如 <rev>~3
相當於 <rev>^^^
。作為捷徑,<rev>~
意為 <rev>~1
,相當於 <rev>^1
,或簡稱 <rev>^
。
此語法是可組合的。
要查詢此類符號名稱,你可以使用 git name-rev
命令:
$ git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a
33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940
請注意,必須在以下示例中使用 --pretty=oneline
而不是 --oneline
$ git log --pretty=oneline | git name-rev --stdin --name-only
master Sixth batch of topics for 2.10
master~1 Merge branch 'ls/p4-tmp-refs'
master~2 Merge branch 'js/am-call-theirs-theirs-in-fallback-3way'
[...]
master~14^2 sideband.c: small optimization of strbuf usage
master~16^2 connect: read $GIT_SSH_COMMAND from config file
[...]
master~22^2~1 t7810-grep.sh: fix a whitespace inconsistency
master~22^2~2 t7810-grep.sh: fix duplicated test name