之前,我去任何進一步的,讓我解釋一下,爲什麼我們不能做:恢復遠程的Git分支
git checkout -b <branch> <sha>
基本上分支(姑且稱之爲DEV1)是另外一個開發人員的機器上。他已經做了一些承諾並推動了它們。該分支從另一分支(我們可以稱之爲特徵)分支,該分支被重命名爲開發。 開發被創建爲的一個分支特徵然後功能被刪除。 開發者分支(dev1)然後由其他開發者在本地和遠程刪除。當使用github for windows時,他發現我們要求推送的所有分支,因此他刪除了整個文件夾(它跳過了回收站)並重新克隆了回購站。 所以現在他不能做:
git reflog
,因爲它沒有任何的歷史。我看不到他的提交,因爲他們從未被本地拖到我的機器上。
那麼,有鑑於此,是否有辦法遠程恢復其分支? 我一直在尋找一個命令,顯示所有被刪除的遠程分支,但到目前爲止,一直無法找到這樣的命令。
任何幫助將避免數週的開發工作!
由於dev1在被刪除之前被推送,因此dev1的提示提交及其父項預計存在於遠程回購中,很可能是作爲懸掛對象存在。創建一個新的克隆並運行'git fsck'來查找所有懸掛的對象並查找其中的提交對象。 'git cat-file -t'可以列出對象類型。運行'git show'來逐一檢查這些懸而未決的提交。我想你可以找出哪個提交是dev1的提示。如果找到了,運行'git branch dev1 '恢復它,然後再推'dev1'。 –
ElpieKay
他做了一個克隆,當他做了一個'git fsck'時,他什麼也沒有返回 – r3plica
我想到了兩種可能性。一個是dev1的提示現在仍然被其他分支或標籤引用,也許是'development'。另一個是懸掛的物體被git gc修剪。如果第一個,你可以在「發展」的歷史中找到它。如果第二個,也許只有一個文件恢復工具可以幫助。 – ElpieKay