我正在尝试恢复大约一个星期前从远程服务器删除的分支。从那时起,我完全销毁了该项目的本地存储库,因此该分支也没有本地版本。我尝试了“ git fsck”,但在那里没有看到与我的分支机构相关的任何信息。
答案 0 :(得分:1)
通过git reflog
(分支上的最后一次提交)找到sha,并在命令行提示符下执行git checkout -b <branch> <sha>
。
答案 1 :(得分:0)
一种可能性是一些尚未进行git fetch --prune
的本地回购,而该回购仍在跟踪最后一个已知的提示。
但是失败了,因为分支是在“大约一周前”在服务器上删除的,未引用对象的出厂默认有效期尚未过去,因此auto-gc尚不应该将其清除。进入该仓库,做
git fsck --lost-found --connectivity-only
和git show
,或者例如git log --online --graph --decorate master..$id
目录中的lost-found/commits
ID,以查看它们是否看起来不错。这样做的话,如果提交仍在仓库中,那么它的历史记录也仍然存在。
如果您不想在实时服务器上运行,则可以将rsync或tar或任何回购协议本身(整个东西)放到想要的任何地方,然后悠闲地购物。如果有人在复制过程中进行了推送,则可能必须删除任何杂散的find -name \*.lock
文件,或者如果在回购协议本身之外配置了任何硬连线路径,则可以使用配置,但这很不正常。