2016-03-03 56 views
1

我幾個月前刪除了一個分支,認爲它在我的項目中不再需要。事實證明,現在,幾個月後,它實際上再次需要。我沒有在本地不幸...恢復幾個月前刪除的Git分支

有沒有辦法我可以恢復它?

編輯:我刪除分支後克隆了回購,所以我相信reflog不能幫助我。

我也試過了「復活」http://repo.or.cz/w/git.git/blob/HEAD:/contrib/git-resurrect.sh這是沒有顯示我的分支。

編輯#2:這些都是很好的答案,但我認爲我搞砸了。由於我已經重新克隆,reflog對我沒有任何幫助,它是一個獨立的分支,它不在遠程服務器上,也沒有其他人在本地擁有它。

我想我會重寫它......

+0

的可能的複製發現這對Atlassian的知識庫[我可以恢復分支在git刪除後?](http://stackoverflow.com/questions/3640764/can-i-recover-branch-after-its-deletion-in-git) – CodeWizard

回答

1

可以恢復分支,如果發生以下任一選項:

(指定如有和虐待更新相應的答案)

  • 如果你已經合併分支到其他分支
  • 你有它在本地存儲在您的回購(這意味着在此期間沒有運行gc)
  • 你在遠程服務器上有它
  • 其他人在他的回購
  • 你有文件,你的線索尋找,這將讓我解釋如何搜索git的斑點尋找它)

平均值,而這裏來看看更多的想法: How to move HEAD back to a previous location? (Detached head)

1

是的,你可以恢復在git中刪除的分支。

首先,運行git reflog並找到SHA1,以便在您刪除的分支的頂端提交。

然後只需git checkout -b <branchname> <sha>即可重新創建分支及其歷史記錄。

+0

90天可以做一個詭計在這裏。我會建議將grep和分支名稱添加到示例中。 – s7anley

+1

一旦gc被執行或者他再次克隆回購,reflog將無濟於事。 GC運行的默認值通常爲90天。 – CodeWizard