我是版本控制的初學者,我正在使用 SourceTree
我要將我的更改從功能分支合并到開發分支。
由于我在功能分支中做了很多更改,我很確定會有沖突。
我在想兩種方法。
1. merge feature branch to dev branch directly and resolve the conflict and then commit
2. merge dev branch to feature branch first. After I resolve the conflict in feature branch,
I merge it to dev branch so that there should be no conflicts.
我應該使用哪一個?這兩種方式的優缺點是什么?
uj5u.com熱心網友回復:
將您的功能分支重新定位在 dev 之上。
與其嘗試通過合并一次解決所有提交,變基將一次將您的個人提交合并到開發者之上,從而允許您以孤立的小塊處理沖突。當您解決每次提交中的沖突時,您可以運行測驗以確保一切仍然有效,然后再進行下一次提交。
一般來說,rebase 來更新你的分支。
由于我在功能分支中做了很多更改,我很確定會有沖突。
這是問題的根源:讓功能分支偏離其上游分支太遠。特性分支應該經常更新,避免過多的漂移,并盡快合并。這意味著保持功能分支的范圍很小。
您可以將其分解為更小的功能分支,而不是嘗試處理整個分支。確定可以作為自己的分支隔離和提交的更改。使用cherry-pick將其移動到一個新的分支,從你的怪物分支洗掉它們git rebase -i,測驗和單獨合并。繼續,直到您的功能分支是可管理的。
您的分支將更容易審查和管理,并且通過將每個更改作為自己的分支進行,更改將得到更好的考慮。
例如,如果作為功能的一部分進行重構,則將該重構提取到新分支中。或者,如果您撰寫了一個新組件,請在其自己的分支中執行此操作。或者你發現了一個切線相關的錯誤并修復它,在它自己的分支中進行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/419058.html
標籤:
