由于SSD发生故障,我的专用服务器在一天前崩溃了。托管公司将我的服务器恢复到2天的旧备份。
构建中的git现在将当前更改与2天前的更改进行比较,并以deleted
跟踪新创建的文件。如何将服务器上的版本重新同步到git上的最新版本?
答案 0 :(得分:0)
按照您提到的操作顺序,如果在两天内对主分支进行了一些额外的修改,则已将其从主分支中删除。
幸运的是,在这种情况下,您仍然可以从本地存储库中找到提交:
运行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**
...
您可以使用在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)
一个非破坏性的动作序列是:
获取所有更改:
git fetch --all
更新远程主分支:
git push origin master
更新任何其他相关分支:
git push origin my/feature1
git push origin my/bugfix
答案 2 :(得分:-1)
以下解决了我的问题(考虑主人是您的分支):
首先获取所有更改:
git fetch --all
然后重置母版:
git reset --hard origin/master
拉/更新:
git pull origin/master