2015-09-14 83 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的完整歷史。

相關問題