Git rebase --preserve-merges терпит неудачу

У меня есть (большое) дерево коммитов, которое содержит несколько коммитов слияния, которые я хочу перебазировать в другой коммит. При обычном ребазе git просит меня разрешить конфликты слияния. Я не хотел проверять каждое слияние, потому что это было бы много работы. Узнав о параметре --preserve-merges, который хорошо объясненВотЯ думал, что нашел идеальный инструмент для этой задачи. Тем не менее, я не могу заставить его работать должным образом. Я создал игрушечный пример, который демонстрирует проблему.

Начиная с пустой папки, мы сначала создаем ветку со слиянием и другую ветку, на которую мы будем перебазировать.

A---B--
\      \
 ---C---D
 \
  ---E

кудамастер относится кB, ветка относится кD а такжепрощай Гиса относится кE.

git init
echo Hello > Hello.txt
git add Hello.txt
git commit -m "Create Hello.txt (commit A)"
git tag start

echo World! >> Hello.txt
git commit -am "Change to Hello World (commit B)"

git checkout start
git checkout -b branch
echo Dave >> Hello.txt
git commit -am "Change to Hello Dave (commit C)"

git merge master
echo Hello World, Dave! > Hello.txt
git add Hello.txt
git commit -m "Merge branch master into branch (commit D)"

git checkout start
git checkout -b goodbye-branch
echo Goodbye > Goodbye.txt
git add Goodbye.txt
git commit -m "Add Goodbye.txt (commit E)"

До этого момента все шло хорошо. Был конфликт слияния, но мы решили его. Теперь попробуем ребазироватьветка наE чтобы получить следующее дерево коммитов:

A---E----B'
     \    \
      C'---D'

git checkout branch
git rebase -p goodbye-branch

Это заканчивается следующей ошибкой:

Auto-merging Hello.txt
CONFLICT (content): Merge conflict in Hello.txt
Automatic merge failed; fix conflicts and then commit the result.
Error redoing merge f567809e2cc91244cc7fdac210e1771dc75e4d86

Файл содержит следующий контент:

Hello
<<<<<<< HEAD
Dave
=======
World!
>>>>>>> 0437403c97f33f229e41ec9584ce891a50052e48

Что я делаю неправильно? Я ожидаю, что git сможет использовать commitD чтобы разрешить конфликт слияния, с которым он сталкивается при перебазировании.

Я использую Git 1.9.4.msysgit.1, которая является самой последней версией прямо сейчас.

Ответы на вопрос(1)

Ваш ответ на вопрос