由于SSD失败,Git已回滚到以前的版本

时间:2019-01-20 10:20:07

标签: git github ssh

由于SSD发生故障,我的专用服务器在一天前崩溃了。托管公司将我的服务器恢复到2天的旧备份。

构建中的git现在将当前更改与2天前的更改进行比较,并以deleted跟踪新创建的文件。如何将服务器上的版本重新同步到git上的最新版本?

3 个答案:

答案 0 :(得分:0)

按照您提到的操作顺序,如果在两天内对主分支进行了一些额外的修改,则已将其从主分支中删除。

幸运的是,在这种情况下,您仍然可以从本地存储库中找到提交:

  1. 运行git reflog master

    您应该会看到类似如下的输出:

    110f738 (HEAD -> master, bare/master) master@{0}: reset: moving to origin/master
    224e68f master@{1}: commit: **commit message**    # <- this commit
    1a58e62 master@{2}: commit: **commit message**
    ...
    
  2. 您可以使用在reset: moving to origin/master行之前出现的提交的哈希值

    例如运行:

    # assuming you are on your local 'master' branch :
    
    # re-set master to its previous state :
    git reset 224e68f
    
    # push it to your server :
    git push origin master
    

答案 1 :(得分:0)

一个非破坏性的动作序列是:

  1. 获取所有更改:

    git fetch --all
    
  2. 更新远程主分支:

    git push origin master
    
  3. 更新任何其他相关分支:

    git push origin my/feature1
    git push origin my/bugfix
    

答案 2 :(得分:-1)

以下解决了我的问题(考虑主人是您的分支):

  1. 首先获取所有更改:

    git fetch --all

  2. 然后重置母版:

    git reset --hard origin/master

  3. 拉/更新:

    git pull origin/master

参考:Git Pull While Ignoring Local Changes?