code.go分支上main當前包含:
package code
some Golang code() {
}
code.go目前在分支上new-branch有:
package code
some other Golang code() {
}
even more code() {
}
理想情況下,我希望最終結果是:
package code
some Golang code() {
}
some other Golang code() {
}
even more code() {
}
我怎樣才能“合并”new-branch到main實作上述結果?當我合并時,git給了我沖突,因為some Golang code()和some other Golangcode()在分支之間的同一條線上。
如果我選擇“接受兩個傳入”,我的一個大括號會丟失,導致語法錯誤。我只是希望生成的code.go檔案以完整的形式包含所有這 3 個代碼塊。
uj5u.com熱心網友回復:
這里的問題是 git 無法確定應該先執行哪個代碼:將some Golang code移到最后就像在開頭一樣自然。因此,手動進行合并是可行的方法,這樣您就可以確保代碼以正確的順序結束。
uj5u.com熱心網友回復:
您不會自動執行此操作,因為您在這里有“經典”沖突(我在 GUI 中顯示它,但在 Git 內部看到相同的東西):一行代碼被另一個片段替換

您必須使用 Git 支持的任何(好的)合并工具手動執行手動合并和解決沖突
uj5u.com熱心網友回復:
如果我選擇“接受兩個傳入”,我的一個大括號會丟失,導致語法錯誤。我只是希望生成的 code.go 檔案以完整的形式包含所有這 3 個代碼塊。
不幸的是,git 和其他常見 VCS 使用的合并演算法不是“代碼感知”的,它們僅在text級別上運行。
因此,雖然您很清楚哪些行屬于同一行,但自動化工具必須嘗試猜測哪些行應該放在哪里,而不知道它們的含義。要從工具的角度來看問題,請保留檔案的結構,但用廢話替換單詞和標點符號:
habble hibble
quig quag quog blib-blob frong
gnorf
和
habble hibble
quig quaggledy quog blib-blob frong
gnorf
quoogle quog blib-blob frong
gnorf
合并演算法發現這兩個分支在第 3、6 和 7 行添加了不同的文本,但在第 4 行都有“gnorf”。所以它假設這是相同的“gnorf”,并給你這樣的東西:
habble hibble
quig quag quog blib-blob frong
quig quaggledy quog blib-blob frong
gnorf
quoogle quog blib-blob frong
gnorf
該演算法可能不那么聰明,并且不會尋找您在兩個分支中添加相同代碼的情況,但這經常會出錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516946.html
標籤:混帐去
