参考git中的上一个/下一个提交?

Hel*_*bye 17 git commit

我见过git命令使用的语法如此HEAD~,但我无法在Git 参考手册中找到这种语法.

这是我所理解的:<commit>~<n>指的是<commit>之前的提交<n>步骤(其中<n>是一个整数),并且只是意味着相同而且<n>隐含地是一个.commit~

现在,这是对的吗?在那种情况下,这总是有效吗?如果<commit>是两个分支之间合并的结果,那么提交将<commit>~引用什么?是否有一些相应的语法用于引用下一个提交或稍后提交<n>步骤?

cex*_*yat 19

在Pro Git的Acenstry References章节中有一个非常明确的解释:

  • ~ 用来获得第一个父母.
  • ^可用于获取其他父项(^2例如,合并).

但是你没有一种简单的方法来引用下一次提交,即使有更复杂的方法来获取它.


Hub*_* OG 14

简单地回答标题中的问题(因为那是我从谷歌那里得到的):

要签出以前的提交:

git checkout HEAD^
Run Code Online (Sandbox Code Playgroud)

检查下一次提交(假设没有分支):

git checkout `git log --reverse --ancestry-path HEAD..master | head -n 1 | cut -d \  -f 2`
Run Code Online (Sandbox Code Playgroud)


Jon*_*ter 6

受@ cexbrayat的回答启发,我发现以这种方式思考它很有用:

如何引用提交的祖先中的某些内容,其中提交可以有多个父项:

  • ^n 指定哪个父项

  • ~n 指定哪一代

两者都默认为一个.


小智 5

要引用分支上的最新提交,您还可以使用@~1

git checkout @~1
Run Code Online (Sandbox Code Playgroud)