这是最初的情况:
然后远程服务器崩溃。
我一直在将更改提交到我的本地存储库,但在修复服务器之前我无法推送它们。在一天左右的时间内,很明显由于硬件问题导致服务器无法恢复,因此远程存储库丢失。与此同时,我已经在我的本地存储库中提交了几个提交。
现在我正在尝试恢复服务器上的存储库。
c:\repositories\myproject
git --git-dir=myproject config core.bare true
命令看起来不错,但现在的问题是我在裸存储库中有两个分支,一个是master
(崩溃时的服务器分支),另一个是remote/origin
(较新的)我的本地提交分支)。
所以基本上我想推送未完成的提交来掌握并删除远程/原始分支,因为裸存储库中不需要它。
我该怎么做?
随意分享更好的方法来完成这项任务。
答案 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