樱桃挑选合并冲突解决方案

时间:2018-05-10 20:45:17

标签: git git-merge git-cherry-pick

当合并两个分支并且如果存在冲突时,在解决并提交冲突之后,此冲突解决方案的更改将记录在合并提交中,如git show所示。现在我需要挑选这个冲突解决方案,而不是合并本身(可以通过git cherry-pick -m实现)。有可能吗?

我需要这样做的原因是,除了这个合并提交中的差异之外,我还需要挑选其他提交,这取决于此合并提交的更改。如果我不首先挑选合并提交,那么随后的挑选将会失败。

1 个答案:

答案 0 :(得分:0)

我认为git rerere是执行此操作的正确方法,但是一种快速而肮脏的方法可能是再次进行合并,并从原始合并提交中恢复冲突的文件。

所以,如果您有:

master A - B - E - F
            \       \
feature      C - D - M1

您要执行的操作是在功能中添加新的提交G,然后从母版重新合并,您可以执行git reset --hard D并提交或选择G所以你有:

master A - B - E - F
            \
(detached)   C - D - M1
                  \
feature            G

现在,如果您将母版重新合并到功能中,将会遇到冲突,但是可以这样做:

git checkout M1 -- <conflicting files...>

这将通过原始M1合并提交中的更改来解决冲突,然后使用git commit创建最终树:

master A - B - E - F --
            \           \
feature      C - D - G - M2