当合并两个分支并且如果存在冲突时,在解决并提交冲突之后,此冲突解决方案的更改将记录在合并提交中,如git show
所示。现在我需要挑选这个冲突解决方案,而不是合并本身(可以通过git cherry-pick -m
实现)。有可能吗?
我需要这样做的原因是,除了这个合并提交中的差异之外,我还需要挑选其他提交,这取决于此合并提交的更改。如果我不首先挑选合并提交,那么随后的挑选将会失败。
答案 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