[英]I have been creating new Git branches from older branch without checking out to the master
您可以只進行一次合並並修復沖突,而不是像使用變基一樣可能需要多次修復。
或者您可以讓 Git 在發生沖突時自動選擇您的更改或主人的更改。
例如,如果您進行變基,您可以將ours
(或theirs
)選項添加到遞歸合並策略中。
例如,以下命令會將您的分支重新設置在 master 之上,並且對於任何沖突,它將選擇您的更改而不是 master 的更改:
git rebase master -Xtheirs
在這種情況下, theirs
和ours
的有點違反直覺。 -Xtheirs
將選擇您的更改, -Xours
將從 master 中選擇更改。
從評論來看,這似乎是解決方案。 你有三個分支:
N 意外地從 O 分支,而不是 M,這是您的意圖。 這意味着在 N 中的某個時間點開始有一系列提交,並且您希望使用這些提交重新創建分支,就好像您從 M 分支一樣。
解決方案是創建一個新分支:
然后從 N 中識別出一系列提交哈希,並將它們應用於 N2。 您可以通過依次挑選每一個來手動執行此操作。
存在這些不會完全適用的風險,因為與 O 相比,M 可能已經更改了一些文件,因此您在 N 中的工作將基於過時的文件/文件夾。 文本更改合並是一個相當簡單的算法,它不像人類那樣理解代碼結構(換句話說,並非所有內容都是可合並的)。
然而,事實證明,櫻桃挑選干凈。 如果您無法做到這一點,您可能必須為每個失敗的差異創建一個差異,並查看如何根據 M 中的更改手動將其應用於 N2。如果發生這種情況,仍然值得嘗試櫻桃-選擇以下提交,因為它們可能並不都需要手動解決沖突。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.