我做了类似下面的事情:
(1) 克隆远程git仓库到本地
local# git clone http://www.foo.com foo
(2) 在ssh主机(bar)上添加另一个项目作为第二个远程仓库
local# git remote add bar ssh://bar/home/project
local# git fetch bar
(3) 在 ssh 主机 (bar) 上做了一些蠢事:
bar# rm -rf/home/project
你能告诉我如何从我的本地副本恢复 ssh 主机 (bar) 上的项目,以便 ssh 主机上的其他开发人员可以继续他们的工作,我可以运行“git fetch bar”来获得他们的提交,就像我没有对他们的 ssh 主机做错任何事一样,即撤消我对主机 bar 所做的所有操作。非常感谢。
更新:
bar# mkdir -p/home/project && cd/home/project && git init --bare
local# git branch 远程显示栏
local# git push bar bar/master:refs/heads/master
local# git push bar bar/branch1:refs/heads/branch1
local# git push bar bar/branch2:refs/heads/branch2
最佳答案
您可以将远程主机设置为新的 git 存储库,然后推送到它。
这篇博客介绍了如何做到这一点:
Toolman Tim - Setting up a new remote git repository
假设您仍然将 bar 设置为远程存储库,本质上:
ssh bar "mkdir -p /home/project && cd /home/project && git --init bare"
git push bar refspec
refspec 通常只是本地存储库中分支的简单名称,因此:
git push bar master
参见 git push manpage详细处理什么符合 refspec。 EXAMPLES 部分特别有助于理解更高级的规范
关于git - 如何从本地存储库恢复意外删除的远程 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937991/