Git "手动合并" 策略

3
我有两个分支,在这两个分支里都在进行项目开发。
我将分支A合并到分支B中(git checkout BranchB; git merge BranchA),解决冲突,并测试分支B,结果发现它不再工作。
我相信问题是由分支A中的一个或两个提交引起的,git将它们优先于分支B。因此,我正在寻找一种合并方式,使"自动合并"不会发生,以便能够对冲突解决过程有更精细的控制。这种方式是否可行?

你有没有阅读手册中关于合并策略的章节(git help merge)?也许另一种策略或选项(如patience)会有所帮助。 - devconsole
你也可以交互式地将BranchB中所做的更改变基到BranchA上。对于每个提交,指定“edit”。然后git会在应用每个提交后停止,让你有机会测试和修改它。 - devconsole
3个回答

2

我不确定完全跳过合并是否可行,但您可以使用

git merge --no-commit

这将允许您执行合并,然后在提交之前检查已合并的文件。


0

我认为最好的解决方案是将分支A基于分支B进行变基,而不是合并。

在这种情况下,您在每个存在冲突的提交上都需要手动干预,并且可以有效地解决它应该解决的问题。

在将分支A变基到分支B之后,将分支A合并到分支B将导致简单的快进。

所以:

git checkout branchA
git rebase branchB

解决提交时的冲突

git add file_with_conflicts
git rebase --continue

0

这似乎需要使用git-imerge。我承认我从未使用过它,但它可以让您在“中间”合并或以“重置历史记录”的方式合并的每个提交上进行测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接