'git checkout HEAD^'的反义词是什么?

What is the opposite of 'git checkout HEAD^'?

我正在使用命令 git checkout 浏览 git 历史。从 master 我去了例如使用哈希 a7040f35a1e.

提交
git checkout a7040f35a1e

然后我转到上一个提交:

git checkout HEAD^

我怎样才能return回来?我的意思是我怎样才能继续提交? HEAD + 之类的词可以吗?

Git 没有 "the following commit" 的运算符,因为单个提交可能有多个 "children"。如果你想 return 到以前的提交,明确地这样做 - git checkout a7040f35a1e.

您可以 return 使用与最初到达那里相同的命令返回:

$ git checkout a7040f35a1e

没有任何特定的方法可以进行以下提交,但您可以使用一些方法:

  • 使用git checkout -。这是 shorthand for git checkout @{-1},意思是“检查我检查的最后一件事”。这解决了回到你刚才所在位置的特定情况,但不是从你所在的位置进入下一次提交的一般情况。
  • 使用提交、标记或分支的名称,例如在 git checkout master^ 之后你可以使用 git checkout master.

这可能是正确的,因为 Git 存储提交之间关系的方式:每个提交都知道其 parent 提交的 ID,因此很容易从 xx^,但提交并不知道它们 children 的 ID,因此没有有效的方法进行反向查找。

Git 文档中有很多关于引用提交方式的信息。签出 git help revisions.

Git 保留上次签出 HEAD 的历史记录。

可以用git checkout HEAD@{1}到上一个

有关完整历史,请参阅 git reflog