Git: Как создать патчи для слияния?
Когда я используюgit format-patch
, кажется, не включает слияния. Как я могу выполнить слияние, а затем отправить его по электронной почте в виде набора исправлений?
Например, предположим, что я объединяю две ветви и выполняю еще один коммит поверх объединения:
git init
echo "initial file" > test.txt
git add test.txt
git commit -m "Commit A"
git checkout -b foo master
echo "foo" > test.txt
git commit -a -m "Commit B"
git checkout -b bar master
echo "bar" > test.txt
git commit -a -m "Commit C"
git merge foo
echo "foobar" > test.txt
git commit -a -m "Commit M"
echo "2nd line" >> test.txt
git commit -a -m "Commit D"
Это создает следующее дерево:
B
/ \
A M - D
\ /
C
Теперь я пытаюсь оформить первоначальный коммит и воспроизвести вышеуказанные изменения:
git checkout -b replay master
git format-patch --stdout master..bar | git am -3
Это создает конфликт слияния. В этом сценарииgit format-patch master..bar
производит только 3 патча, исключая «Commit M». Как мне с этим бороться?
Джеффри Ли