1. 程式人生 > >Git多分支開發過程中處理衝突的經驗教訓

Git多分支開發過程中處理衝突的經驗教訓


最近在專案開發中遇到一個問題,不同分支的程式碼產生大量衝突,導致合併麻煩。這也算是一個教訓。值得記錄下來反思。

不同分支程式碼的衝突問題

已上線分支為 master,我負責的分支為 A,另外有人負責的分支是 B,恰恰因為專案需求的原因,A 和 B 分支上的某個類會被我們同時改動。由於master分支上線的緣故,第二天我需要在自己的A分支上去合併已上線分支master的程式碼。這時候,出現了問題:我的A分支上有從別人的B分支上合併過來的程式碼(是必須要的),這個B分支的人居然全選了整個類幾千行程式碼(這個專案有點老,程式碼質量很差,說成又臭又長也不為過)進行了格式化,因此和已上線的master分支的程式碼產生大量衝突

,我合併的時候需要挨個比對這個類中自己的程式碼、B分支的程式碼和master分支的程式碼,非常耗時,而且容易出錯。

解決方案與反思

這個問題讓我學到了經驗,那就是:遇到大型專案,有多個分支且已經產生需求衝突的時候,一定要把自己的那部分程式碼以面向物件的方式,獨立出來,在不同分支都會共同修改的那個類中,在關鍵部分以方法呼叫的形式來加入自己的邏輯。這樣,可以減少衝突,把自己的程式碼邏輯獨立出來作為新的類,就不會與別人程式碼衝突。


本文首發於個人獨立部落格,文章連結:http://www.zebe.me/git-conflict-with-others