我见过git命令使用HEAD~
这样的语法,但我在Git Reference Manual中找不到这种语法。
以下是我的理解:<commit>~<n>
指的是早于 * * 的提交 步(其中 是整数),并且commit~
简单地表示相同并且 隐含地是1。
现在,这是正确的吗?在这种情况下,这总是有效的吗?如果 是两个分支合并的结果,<commit>~
将引用哪个提交?是否有一些对应的语法来引用下一个提交或之后的提交 步骤?
我见过git命令使用HEAD~
这样的语法,但我在Git Reference Manual中找不到这种语法。
以下是我的理解:<commit>~<n>
指的是早于 * * 的提交 步(其中 是整数),并且commit~
简单地表示相同并且 隐含地是1。
现在,这是正确的吗?在这种情况下,这总是有效的吗?如果 是两个分支合并的结果,<commit>~
将引用哪个提交?是否有一些对应的语法来引用下一个提交或之后的提交 步骤?
5条答案
按热度按时间hgc7kmma1#
在Pro Git中的Ascistry参考一章中,你已经非常清楚地解释了这是如何工作的:
~
用于获取第一个父对象。^
可用于获取其他父节点(例如,对于合并,^2
)。但是你没有一个简单的方法来引用下一个提交,即使there are more convoluted ways来得到它。
bogh5gae2#
简单地回答标题中的问题(因为这是我从谷歌到这里的原因):
要 checkout 上一次提交:
要 checkout 下一个提交(假设没有分支):
xmakbtuz3#
受@cexbrayat回答的启发,我发现这样想很有用:
如何引用提交祖先中的某个东西,其中一个提交可以有多个父提交:
^n
指定哪个父级~n
指定生成两者都默认为一。
6yt4nkrj4#
要引用分支上最近的提交,也可以使用
@~1
uz75evzq5#
和OP一样,我也在寻找关于这个主题的官方文档,结果发现了这个SO问题。参见Git - Revision Selection。