合并从功能到主分支的更改,然后还原一些而不在功能分支中还原它们

时间:2012-12-12 20:51:03

标签: git merge

我有一个主分支,它合并到功能分支。现在好几次,我开始在功能分支中做一些事情,然后意识到我想要在master分支中进行部分更改。有没有办法将这些更改的一部分合并到master而不会在从master运行合并时丢失其他部分?

假设我在功能分支中进行了这些更改:

Line A
Line B
Line C

现在我将它与cherry-pick合并为master,但Line B特定于该功能,因此我将其删除。但随后从主分支运行到功能分支运行,功能分支最终缺少Line B

避免这种情况的正确方法是什么?请-n(没有提交)将我从中拯救出来吗?我不介意在从master到feature运行合并时遇到冲突,但是获取它们的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

执行此操作的方法是在包含

功能中生成提交
Line A
Line C

并将 master 合并/重新定位到该提交,然后在您的工作目录中存在Line B /稍后在功能中提交。

如果解释不是很明确,请道歉。

答案 1 :(得分:0)

您可以更改分支策略,以便不将主要更改合并到功能分支中。创建一个额外的开发分支,在其中进行“常规”更改(您现在在master上执行的某些操作并合并到功能中)。然后,只要您希望更改升级为master,将它们以交互方式合并或重新绑定到master中,只接受您想要的内容。并将开发人员更新纳入功能分支,将开发合并或重新定义为功能,但不要让主人独自完成。这样,如果你忽略了master中某些功能的变化,那就无所谓了。