2012-03-20 73 views
2

我對git的使用非常陌生,發現它非常容易理解分支/提交管理。無論如何,我正在開發的項目是由git管理的,我正在使用gitk。使用gitk我做了commmits,並簽出了一個以前的提交。現在當我做可視化HEAD的歷史,我簽出的提交出現在最後,我的其他5或6次提交後失蹤。在git上,我查看了以前的提交,現在找不到我以後的提交

請注意,我正在主分支 - 但由於某種原因,我沒有在主分支右側現在。也就是說gitk可視化是這樣的:

commit 14 。 。 。 承諾9 。 。 主人 。 。 。 。 commit 1

我簽出了提交9,我也沒有任何提交哈希代碼。

+2

有用的技巧與gitk:'gitk --all'(顯示所有分支)。這樣,無論你在使用哪一個,或者即使你處於「獨立HEAD」狀態,都可以看到一切。 – torek 2012-03-20 17:25:09

回答

3

使用git日誌,看看你所有的提交,獲得最新的一個的SHA1哈希值,然後做

git checkout -b "branchname" <SHA1 goes here> 

這將檢索你做的時候沒有簽出的分支任何承諾,然後你應該有您的所有提交都可以在新分支上看到。

+0

Git日誌顯示提交,直到我已簽出的當前提交。它沒有顯示我之後做的那些。 – 2012-03-20 11:00:26

+4

啊。改用git reflog。 – 2012-03-20 11:03:44

+0

好吧,我剛剛那樣做。幸好它顯示了所有的提交和它們的哈希值。它顯示所有53個提交併顯示HEAD {0}旁邊的最新一個。這是一個結帳,所以我只會結賬這一個下面的一個。但是,對於上帝的愛,你能告訴我發生了什麼嗎?我怎樣才能讓我的主人指出這個最新的提交? – 2012-03-20 11:07:13

0

您處於分離HEAD狀態,這意味着您當前的HEAD指向提交而不是分支。你需要做的是再次簽出master分支,然後你會看到你的提交gitk。在命令提示符下鍵入以下內容:

git checkout master 
+0

是的 - 就是這樣。我曾經想到過。感謝您指出它的參考。 – 2012-03-30 04:54:06

相關問題