Когда я использую 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". Как я могу справиться с этим?
-Geoffrey Lee