【问题标题】:How to restore Git bare repository from local one如何从本地恢复 Git 裸仓库
【发布时间】:2014-04-30 20:04:41
【问题描述】:

这里是初始情况:

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

然后远程服务器崩溃。

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

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

  1. 我将文件从本地 .git 文件夹复制到 c:\repositories\myproject
  2. 我运行git --git-dir=myproject config core.bare true 命令

看起来不错,但是现在的问题是我在裸存储库中有两个分支,一个是master(崩溃时的服务器分支),另一个是remote/origin(我本地的较新分支提交)。

所以本质上我想将未完成的提交推送到 master 并完全删除 remote/origin 分支,因为裸存储库中不需要它。

我该怎么做?

随时分享完成此类任务的更好方法。

【问题讨论】:

    标签: git restore


    【解决方案1】:

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

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

     git init --bare
    

    在客户端(本地repo),如果有变化,设置新的origin,然后推送到服务器,重新设置跟踪。

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

    【讨论】:

    • 它会保留更改历史记录,不是吗?
    • 是的。它应该相当于重新创建崩溃的服务器,然后推送最新的更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2011-10-06
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多