我的團隊和我本人爲一家軟件供應商工作,爲客戶構建大型軟件。數十位開發者使用Git進行源代碼控制。我們有4個版本:將大型Git/TeamCity項目與4個版本合併問題
- 0.9:在生產
- 0.9.1:在客戶端進行測試
- 1.0:由我們正在測試(軟件供應商)
- 1.1:正在修建
我們目前的工作的做法是,當你比如修復例如0.9.1中的錯誤,
- 你拉最新的0.9.1,然後把你的修復程序0.9.1
- 切換到1.0,拉最新的1.0,合併0.9.1,推到1.0
- 切換到1.1,拉最新的1.1,合併1.0,推到1.1
問題是,有幾十個開發人員,往往有多個人試圖在同一時間推動他們的修復。結果,人們經常進行相同的合併,合併彼此的變化。例如:
- DEV1推fix1到0.9.1,拉動1.0並開始合併
- 儘管DEV1被合併到1.0,DEV2推FIX2到0.9.1,拉動1.0並開始合併自己FIX2,但也修復1
- 加上合併也需要完成到1.1。
我懷疑,因爲這一切的痛苦,人們往往會做很多的提交在本地計算機(沒有備份),然後做大量的合併說,每天一次或每兩天 - 所以其他的開發者對付過時的代碼。
我想這個問題也發生在其他基於Git的大型項目上。希望聽到那些從事此類項目的人員處理這個問題的方式。