如何从本地仓库还原Git裸仓库

5
这是最初的情况:
  • 一个裸的Git仓库在远程服务器上
  • 一个本地机器上的开发Git仓库
然后远程服务器崩溃了。
我一直提交更改到我的本地仓库,但在修复服务器之前无法将它们推送。一天左右后,由于硬件问题,很明显服务器无法恢复,因此远程仓库丢失了。与此同时,我已经在我的本地仓库中进行了多次提交。
现在我正在尝试恢复服务器上的仓库。
  1. 我将文件从我的本地.git文件夹复制到
  2. 我运行git --git-dir=myproject config core.bare true命令
看起来不错,但现在的问题是裸仓库中有两个分支,一个是master(崩溃时的服务器分支),另一个是remote/origin(带有我的本地提交的新分支)。
所以本质上,我想将未完成的提交推送到master并完全删除remote/origin分支,因为它在裸仓库中不需要。
我该如何做到这一点?
欢迎分享更好的实现此任务的方法。
1个回答

11

一种方法是完全清洗远程仓库,然后从本地做一个 push

在服务器上,进入裸仓库所在的目录,执行以下操作:

 git init --bare

如果本地仓库的远程仓库地址已更改,则需要在客户端(本地仓库)上设置新的远程仓库地址,并将更改推送到服务器上,然后再次设置跟踪。

git remote set-url origin <Remote_URL>
git push origin master
git branch --set-upstream-to=origin/master master

它会保留更改历史记录,不是吗? - Alex
1
是的。它应该等同于重新创建崩溃的服务器,然后推送最新更改。 - merlin2011

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接