1. 程式人生 > 其它 >程式設計師多人協作開發記一次解決git合併解決全文衝突的問題

程式設計師多人協作開發記一次解決git合併解決全文衝突的問題

由於需求擠壓 加上   測試需求擁塞

目前銷售系統和採購系統開發面臨上線和測試合併程式碼頭疼的問題。

看到下面全文衝突大多數人都是一臉懵逼,多個需求針對同一個檔案重複的修改,刪除等操作導致合併的時候程式碼比較凌亂,一不小心就會把別人的程式碼刪掉或者把舊程式碼恢復了

 

當然也可以使用第三方工具來對比本地和遠端程式碼差別

 

對比後其實也沒有具體解決方案,如果程式碼是自己一個人開發的還好,因為自己清除這些程式碼的改動。假如多人蔘與開發要怎麼處理?

目前咱沒有很好的方案,只能先以開發分支覆蓋,然後把需要合併的分支 一行行手動加到測試分支,如果是上線遇到這樣問題,也許會因為合併一點點程式碼問題導致上線後的bug

除了以上技術解決方案,在需求分發和上線上有其它方案沒?比如多個需求統一測試一起上線(導致需求會延期)

案例:

PurOrderService.php.BASE.php

PurOrderService.php.LOCAL.php

PurOrderService.php.REMOTE.php

 

解決過程:

 

第一次解決方案,最終放棄了:(以local為主)

      本想著已測試分支dev(local檔案)為主,然後比對需要合併的開發分支,一行行比對,把自己新加的程式碼合併進去,但是開發分支程式碼太多了,改了一半放棄了,對比了下dev測試分支和開發分支,發現開發分支改動程式碼比較多,所有準備換第二種方案。

 

第二次解決方案 以開發分支為主

      以開發的分支為主,對比dev測試分支改動一行行復制到開發分支,同樣遇到問題:(程式碼如果是自己的寫的 當然知道那些程式碼是刪除,那些是新增的),當遇到一個檔案3個人開發,3個不同需求。

      此時需要找到對應開發確認下dev測試分支改動的地方,有些程式碼在他的需求是刪除了,新增了,修改了 需要找到這些地方,複製到開發分支裡面。

上圖所示:左邊為本人開發分支   ,右邊為dev測試分支(含有不同需求 不同人開發的),標記的1,2,3初異常猜測是1和2刪除了,3新增。

但是是猜測的,還是要找相關開發確認後,再把右邊程式碼新增的copy到左邊,右邊刪除的,左邊也要相對應的刪除。