我见过git命令使用的语法如HEAD~
,但我无法在Git Reference Manual中找到这种语法。
以下是我所理解的:<commit>~<n>
是指提交&lt; n&gt; 的步骤,早于&lt; commit&gt; (其中&lt ; n&gt; 是一个整数),而commit~
只是意味着相同,而&lt; n&gt; 隐含的是一个。
现在,这是正确的吗?在那种情况下,这总是有效吗?如果&lt; commit&gt; 是两个分支之间合并的结果,那么提交将<commit>~
引用怎么办?是否有一些相应的语法用于引用下一次提交或稍后提交&lt; n&gt; 步骤?
答案 0 :(得分:16)
您可以在Acenstry References in Pro Git一章
中清楚地解释其工作原理~
用于获取第一个父级。^
可用于获取其他父母(^2
,例如,合并)。但是你没有一种简单的方法来引用下一次提交,即使there are more convoluted ways得到它也是如此。
答案 1 :(得分:14)
简单地回答标题中的问题(因为那是我从谷歌那里得到的):
结帐以前的提交:
git checkout HEAD^
检查下一次提交(假设没有分支):
git checkout `git log --reverse --ancestry-path HEAD..master | head -n 1 | cut -d \ -f 2`
答案 2 :(得分:6)
受@ cexbrayat的回答启发,我觉得以这种方式思考是有用的:
如何在提交的祖先中引用某些东西,其中提交可以有多个父级:
^n
指定哪个父级
~n
指定哪一代
两者都默认为一个。
答案 3 :(得分:1)
要引用分支上的最新提交,您还可以使用 @~1
git checkout @~1