2015-09-14 57 views
2

我正在通过命令git checkout来浏览git历史记录。从master我去例如提交散列a7040f35a1e'git checkout HEAD ^'的相反之处是什么?

git checkout a7040f35a1e 

然后我去了以前的承诺:

git checkout HEAD^ 

怎么能就回国了?我的意思是我怎么去跟随提交?单词HEAD +有可能吗?

回答

2

没有去下面提交任何具体的方式,但也有一些事情你可以使用:

  • 使用git checkout -。这是git checkout @{-1}的简写,意思是“结帐我检出的最后一件东西”。这解决了回到原来的位置的具体情况,但不是从您所在的位置开始下一次提交的一般情况。
  • 使用提交,标记或分支的名称,例如在git checkout master^之后,您可以使用git checkout master

这可能是真的,因为路之间的Git存储关系承诺:每一个提交知道其父的ID提交(S),所以很容易跟随从xx^这种关系,但提交唐”不知道他们的孩子的ID,所以没有有效的方法来做反向查找。

关于在Git文档中提交提交的方式有很多信息。结帐git help revisions

5

Git没有“以下提交”的操作符,因为单个提交可能有多个“子”。如果您想要返回到之前的提交,请明确执行 - git checkout a7040f35a1e

+3

一个提交也可以有多个父母(例如合并提交),并且有一种方法可以使用'^'来获得这些提交。我认为这与儿童存储其父母的身份证号码有关,但父母不知道他们孩子的身份证号码。 – georgebrock

0

您可以使用您使用的相同的命令返回到那里开始:

$ git checkout a7040f35a1e 
+0

当然我知道:)这实际上不是我的问题。我很好奇走一步,一步下去 – areim

+0

@areim我一直在StackOverflowing整天。知道的人大多与那些不知道的人没有区别。更严重的是,默认值是'〜',具体的ups是''',没有减少,尽管通过'@'引用了reflog。 –

1

Git保留上次检出的历史记录HEAD s。您可以使用git checkout [email protected]{1}到上一个。

查看git reflog的完整历史。

相关问题