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

标签 git

我做了类似下面的事情:

(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/

相关文章:

git - 在 IntelliJ 中更改默认的远程 git 分支

windows - Windows 7 上的 ssh 问题(gitbash 与 windows cmd)

git - 如何根据某些规则拒绝 git push

python - autopep8 似乎没有找到配置文件?

Git - 如何有选择地将更改从一个分支应用到另一个分支?

git - 无法与 Visual Studio Git 插件同步更改

git - 预推 Git 钩子(Hook)以确定分支名称是否有效

git - 在推送后恢复空的 merge 提交

regex - 如何找到所有 .git\config 文件?

git tag -l 不显示最新版本