兩個分支master
和foo
指向相同的根提交A.工作樹只有一個文件bar.txt
。如何提高這個git cherry-pick的衝突?
$cat bar.txt
11111
22222
33333
44444
55555
製作提交B到master
,在bar.txt
添加一行。
$cat bar.txt
11111
22222
33333
aaaaa
44444
55555
然後使提交C至master
,刪除aaaaa
和bar.txt
添加bbbbb
別處。
$cat bar.txt
11111
bbbbb
22222
33333
44444
55555
運行git format-patch -1 C
以產生用於提交C中的補丁,假設它的名字是0001-bbbbb.patch
。
現在結帳foo
。如預期的那樣,git am 00001-bbbbb.patch
或git apply 00001-bbbbb.patch
將由於衝突而失敗。但git cherry-pick C
將成功,沒有任何問題。
從這個question我得知git am
或git apply
將與在這種情況下,參數-3
或--3way
太成功。但是,我找不到關於git cherry-pick
的三種合併方式的任何配置或參數。
問:
如何禁用git cherry-pick
三路合併的事情在這種情況下,使摘櫻桃會失敗?
非常感謝。
對於該修補程序,您可以嘗試調整上下文行數。 deafult是3,所以你會在上下文中發現變化的重疊。刪除到2個上下文行將允許22222 \ n33333對提供清晰的上下文。與此同時,Cherry-pick已經更多地瞭解你的回購,因此可以對合並基礎和上下文線做出明智的決定(合併策略的不同部分可以非常詳細以確保在可能時取得成功,並在不可能時報告衝突) –
補充:你爲什麼要櫻桃採摘失敗? (而不是有一個正確成功的補丁?) –
@PhilipOakley閱讀您的意見後我覺得我的期望是某種不合理的。如果當前上下文與修補程序相關的修補程序不同,那麼修補程序不能在沒有3way合併的情況下應用?我猜如果沒有3way合併,大部分選秀權都不會成功。 – ElpieKay