如何从本地存储库中恢复意外删除的远程git存储库

yod*_*oda 9 git

我做过类似的事情:

(1)将远程git存储库克隆到本地主机

本地# git clone http://www.foo.com foo

(2)在ssh主机(bar)上添加另一个项目作为第二个远程存储库

本地# git remote add bar ssh://bar/home/project

本地# git fetch bar

(3)在ssh主机(bar)上做了一些愚蠢的事情:

酒吧# rm -rf /home/project

你能告诉我如何从我的本地副本恢复ssh主机(bar)上的项目,所以ssh主机上的其他开发人员可以继续他们的工作,我可以运行'git fetch bar'来获取他们的提交,就像我没有对他们的ssh主机做任何错误,即撤消我所做的所有主持吧.非常感谢.

更新:

酒吧# mkdir -p /home/project && cd /home/project && git init --bare

本地# git branch remote show bar

本地# git push bar bar/master:refs/heads/master

本地# git push bar bar/branch1:refs/heads/branch1

本地# git push bar bar/branch2:refs/heads/branch2

Mar*_*rey 8

您可以将远程主机设置为新的git存储库,然后推送到它.

这篇博客讨论了如何做到这一点:

Toolman Tim - 设置一个新的远程git存储库

假设您仍然将栏设置为远程存储库,基本上:

ssh bar "mkdir -p /home/project && cd /home/project && git --init bare"
git push bar refspec
Run Code Online (Sandbox Code Playgroud)

refspec通常只是本地存储库中分支的简单名称,因此:

git push bar master
Run Code Online (Sandbox Code Playgroud)

有关refspec的资格,请参阅git push联机帮助页.EXAMPLES部分特别有助于理解更高级的respec