簡體   English   中英

在本地和服務器上都刪除的 Git 恢復分支

[英]Git restore branch that was deleted both locally and on the server

我正在嘗試恢復大約一周前從遠程服務器中刪除的分支。 從那時起,我徹底銷毀了該項目的本地存儲庫,因此也沒有該分支的本地版本。 我嘗試了“git fsck”,但在那里沒有看到與我的分支相關的任何內容。

通過git reflog (分支上的最后一次提交)查找 sha 並在命令行提示符下執行git checkout -b <branch> <sha>

一種可能性是某處沒有執行git fetch --prune ,它仍然會跟蹤最后一個已知的提示。

但是如果失敗了,由於“大約一周前”在服務器上刪除了分支,未引用對象的出廠默認到期時間尚未過去,因此 auto-gc 不應該將其清除。 ssh 到那個 repo,做

git fsck --lost-found --connectivity-only

git show或者例如git log --online --graph --decorate master..$idlost-found/commits目錄中的 id 以查看它們中的任何一個看起來不錯。 任何這樣做,您都可以為他們制作一個新的分支提示,如果提交仍在回購中,其歷史記錄也在那里。

如果你不想在實時服務器上操作,你可以只 rsync 或 tar 或任何 repo 本身,整個事情,到任何你想要的地方,然后在閑暇時進行探索。 如果有人在復制過程中推送,您可能必須刪除任何雜散的find -name \\*.lock文件,或者如果有任何硬連線路徑配置在 repo 本身之外,則使用配置,但這是不尋常的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM