我的组织在GitHub上有一个远程存储库,这是另一个组织的分叉。我在我的本地机器上做了一个克隆,并创建了一个本地分支,“test”。以下是以下命令的列表:
git fetch origin '+refs/heads/*:refs/remotes/origin/*'
git push --mirror
git push --all接下来的一切只不过是一场噩梦。远程上没有在本地机器上签出的任何分支都会在存储库中被删除。我做过git branch -a,但这只显示了本地副本上存在的远程分支。我已经完成了git reflog show,但这只显示了当前分支HEAD上的日志。Doing git fsck显示了6个‘悬空提交’和2个‘悬空点’。在执行git push --mirror之前,分支有16个分支,其中5个是由我们的组织创建的,其余的是从原来的分支中创建的。我知道以前曾提出过类似的问题,即使不是同样的问题,但在这一点上,没有一个问题是有意义的。我对任何能阻止我被解雇的人表示最崇高的敬意和最崇高的谢意。
发布于 2015-07-31 18:30:42
有几件事要尝试。前两种方法将帮助您恢复曾经是分支提示的事物的SHA1s。但是,有一件事很难恢复,那就是缺少的分支的名称,除非之前已经知道了。
如果您知道要恢复的分支的名称,则还可以尝试:
发布于 2018-01-22 20:52:42
如果您可以访问所推送到的远程文件系统,则可以从MYREPO.git/info/refs中恢复已删除的分支。
里面的东西看起来像这样。
2ef208a632946dd4b5fd6f124a7fd6fc1c2ab87e refs/heads/foo-feature
7325d39f52d6663e33f360b3bd666300ce2c52b0 refs/heads/bar-feature对于要恢复的每个分支,请在本地回购中创建一个文件。
$ echo 2ef208a632946dd4b5fd6f124a7fd6fc1c2ab87e > .git/refs/heads/foo-feature然后,将新恢复的分支推回服务器。
$ git push --allhttps://stackoverflow.com/questions/31752656
复制相似问题