首页 > 解决方案 > 用另一个分支的更改覆盖分支

问题描述

各位 git 用户您好!

我遇到以下问题,我不知道避免它的最佳和正确方法是什么。所以在这里我将解释:

我正在使用 2 个不同的分支机构:

我目前使用的工作流程如下:

  1. dev在分支上进行更改
  2. 更改经过测试和批准
  3. 签出master并合并dev以包含新更改

到目前为止没有什么疯狂的,对吧?

现在,几周前出现了以下情况:

  1. dev在分支上进行更改

  2. 更改经过测试和批准

  3. 签出master并合并dev以包含新更改

  4. 有人意识到这些更改的一部分不应该在master(生产)中

  5. master分支中,我们评论了这些更改,以便这些更改未在master

现在的情况:

几天后,发生了以下事情:

  1. 添加了更多更改dev

  2. 更改经过测试和批准

  3. 签出master并合并dev以包括最近的新更改以及现在master.

  4. 结果,所有内容都包含在中,master 已评论的更改仍被评论master.

一开始,我有点期待master被版本覆盖,dev但后来我意识到这没有多大意义,因为合并实际上是将两个分支的更改放在一起,所以结果是绝对有意义的。但是,这不是我需要的。

什么是最好的解决方案?我在考虑以下选项:

  1. 绝对禁止对master分支进行更改。所以任何更改(比如注释部分代码)都应该先devmaster.

  2. 当合并到master使用参数时,忽略当前分支中的所有更改,只获取来自dev分支的所有更改。那太棒了,显然我不知道如何在 git 中做到这一点。

无论如何,您的意见将不胜感激。

谢谢!

标签: gitgithubmerge

解决方案


这是你应该做的

在您master对.devmaster

然后dev你应该已经恢复了commit ( git revert commit-id),它注释掉了master.

然后,当您继续再次合并devmaster,一切都会好起来的。

现在事情已经发展得更远了,您可以:

  1. [最佳方法] 尝试上述步骤;如果所做的更改dev不够深入和/或没有触及与commit相同的地方,那么很可能一切都是正确的;或者

  2. master分支中继续还原(git revert提交


推荐阅读