2010-03-05 95 views
6

背景: Trevor正在開發一個測試項目,目的只是爲了試用git。這是一個還沒有被共享,特雷弗爲了做了復位難以抹殺一些不需要提交當地一人庫:做完git reset後的匿名分支

:git reset --hard 6aa32cfecf4 
    HEAD is now at 6aa32cf auto commit Sun Feb 28 16:00:10 -0800 2010 

然後特​​雷弗走到一起高高興興地添加新的提交到項目中。然後,當Trevor查看提交歷史的圖形表示時,Trevor發現似乎有一個匿名的提交分支。它不會顯示爲使用git分支的分支,但它確實在GUI中顯示。

問題1: Trevor如何擺脫這個「匿名分支」...... Trevor究竟在看什麼?什麼是幫助Trevor瞭解Trevor做出重置後發生了什麼的一些指示,Trevor可以更好地設置Trevor的期望。

問題2:假設特雷弗與其他人共享項目。如果不進行硬重置,可以選擇做同樣的事情(或類似的事情)?

+1

什麼是swip? – 2016-08-11 03:29:05

+0

@AndrewWillems Trevor – dreftymac 2016-08-11 20:26:27

回答

4

正如在The illustrated guide to recovering lost commits with Git中提到的那樣,您可以恢復「丟失」提交(如「不再由分支或標記引用」)。
這就是爲什麼他們仍然顯示在gitk。
例如,:

$ git fsck −−lost-found 

也將顯示出來。

要清理乾淨(假設你有什麼任何其他的刪除操作取回)

$ git gc --aggressive 
$ git prune 

參見git gc: cleaning up after yourself


如果該分支已被共享的,一個可能的選擇將是爲了使新修訂版本取消了之前N的人是一個git revert

3

您可以通過提交創建一些新分支。

如果您上次在您的匿名分支提交是123e43你可以這樣做:

git checkout -b my_branch 123e43e

現在你的分公司是不匿名的。您可以在您的主分支中合併或重新綁定它