git – 当合并的分支已合并并已恢复时,如何强制合并提交?

在我们的存储库中,我们遵循基于git-flow的工作流程.我们有一个已完成的版本(在生产中安装),因此发布分支已合并为master.

    B---C---D---E [release/1]
   /             \
  A---------------F [master]

  E - head of the release branch
  F - merge of release/1 into master

生产中存在问题,因此软件已移回到先前版本.我们的部署过程保留了备份,因此这是独立于源代码控制完成的.此时,主分支与生产中的软件不匹配,因此我们将将发布合并到主服务器的提交还原.这使得主人的头和生产中部署的软件同步.

    B---C---D---E
   /             \
  A---------------F---G [master]

  G - revert of release, effectively bring master back to A

发现版本不是问题,因此我们将该软件重新安装到生产中.我们通过在与旧发布分支相同的提交上创建新的发布分支来完成此操作.

    B---C---D---E [release/2]
   /             \
  A---------------F---G [master]

但是,当我们关闭发布分支时,Git没有创建合并提交,因为发布分支的头部指向一组提交,这些提交位于主历史记录中(通过原始合并).

    B---C---D---E-------+
   /             \       \
  A---------------F---G---H

  H - merge of release/2 into master (this is what we want!!)

但是,由于恢复该版本中的实际更改现在已丢失.我如何强制Git第二次合并发布分支的负责人?

最佳答案 如你所知,git没有进行合并,因为它看到这些提交已经在分支的历史中.恢复是阻碍的.

我以前打过这个.您需要做的是首先恢复还原.这将删除删除提交的提交. 🙂

git revert G

然后你可能想重新合并只是为了获取之后发生的任何事情.

点赞