如何从本地恢复Git裸存储库

时间:2014-04-30 20:04:41

标签: git restore

这是最初的情况:

  • 远程服务器上的裸Git存储库
  • 本地计算机上的开发Git存储库

然后远程服务器崩溃。

我一直在将更改提交到我的本地存储库,但在修复服务器之前我无法推送它们。在一天左右的时间内,很明显由于硬件问题导致服务器无法恢复,因此远程存储库丢失。与此同时,我已经在我的本地存储库中提交了几个提交。

现在我正在尝试恢复服务器上的存储库。

  1. 我将文件从我当地的.git文件夹复制到c:\repositories\myproject
  2. 我运行git --git-dir=myproject config core.bare true命令
  3. 看起来不错,但现在的问题是我在裸存储库中有两个分支,一个是master(崩溃时的服务器分支),另一个是remote/origin(较新的)我的本地提交分支)。

    所以基本上我想推送未完成的提交来掌握并删除远程/原始分支,因为裸存储库中不需要它。

    我该怎么做?

    随意分享更好的方法来完成这项任务。

1 个答案:

答案 0 :(得分:6)

一种方法是完全彻底地重新初始化远程存储库,然后从本地执行push

在服务器上,在裸存储库应该存在的目录中,执行

 git init --bare

在客户端(本地仓库)上,设置新原点(如果已更改),然后推送到服务器,再次设置跟踪。

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