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». Как мне с этим бороться?

Джеффри Ли

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

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