在本地和服务器上均已删除的Git Restore分支

时间:2019-02-15 16:11:13

标签: git github

我正在尝试恢复大约一个星期前从远程服务器删除的分支。从那时起,我完全销毁了该项目的本地存储库,因此该分支也没有本地版本。我尝试了“ git fsck”,但在那里没有看到与我的分支机构相关的任何信息。

2 个答案:

答案 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文件,或者如果在回购协议本身之外配置了任何硬连线路径,则可以使用配置,但这很不正常。