为什么我会与 `git rebase -p` 发生冲突

Why do I get a conflict with `git rebase -p`

我正在尝试了解 git rebase 如何处理合并。我认为使用 -p,它将能够对已经解决的冲突合并进行变基。但它接缝就像没有。

这里有一个例子来说明这个问题:

git init
touch a && git add . && git commit -m 'first commit'
git branch b
git branch c
echo 'a' >> a && git add . && git commit -m a

git checkout b
echo 'b' >> a && git add . && git commit -m b

git checkout master
git merge b
echo ab > a
git add .
git commit

git checkout c
touch c && git add . && git commit -m c

git checkout master
git rebase -p c

这里我在应用合并提交时遇到冲突。 有人可以向我解释为什么吗?

不,-p 只是将合并提交保留在历史记录中而不是展平它们。文档明确表示这对手动合并没有帮助:

(来自 the man page

Merge conflict resolutions or manual amendments to merge commits are not preserved.