git服务器被还原为旧快照 - 如何从开发者的PC中同步“origin”repos?

时间:2018-03-19 12:13:07

标签: git

长话短说,我们的git服务器(gitlab,如果它很重要)主持了大约100个repos,恢复到3周前状态。我们(开发人员)显然已经在我们的本地计算机上进行了所有更改 - 这就是GIT的工作原理,对吧?我们如何将它们同步回服务器?我看到的问题是更改在本地标记为“推送”(即在 origin 分支中)。请问git能理解这一点,我们只需要再次推送吗?这怎么会与多个分支一起工作?或者多个开发人员在同一个分支上工作?任何建议或链接将不胜感激。

2 个答案:

答案 0 :(得分:2)

再次推送到服务器更新服务器状态,因为git计算服务器和服务器之间的差异。推送客户

确保将所有本地分支从本地环境推送到服务器。

如果您的git流程指定永不结帐到主分支,请跳过此

git push --all

在某些情况下,这可能无法恢复最新的master / develop分支,因为某些工作流程指定您根本不应该签出到主分支,如果这是您的工作流程,您应该在签出后手动推送每个分支。它的远程版本。恢复的工作流程如下:

git checkout master
git merge origin/master
# Don't use pull here or the client will realize the server has "reverted"
git push

答案 1 :(得分:0)

稍微退一步,听起来本地(dev)repos上的远程跟踪分支与远程(服务器)存储库的状态不同步是导致混淆的原因。

只需执行git fetch --prune(或您喜欢fetch的任何咒语,但 git pull),跟踪引用将会更新,事情会更新再次开始有意义。