主幹開發是一種讓開發者在一個共同的主幹分支上協作的開發方式,透過把變更拆小、頻繁整合,減少長期分支帶來的整合負擔,並讓程式碼維持隨時可發布的狀態。過去有聽過朋友對於主幹開發的印象是「不開分支」或「直接把程式碼推上主幹」。
「是這樣!但不是這樣!」
要做到這件事會比看起來的難很多。過程中會遇到各種問題與挑戰,例如:如何保護主幹?尚未完成的功能怎麼先合併?長期的改版計劃又該如何逐步進行?
本系列將用 30 天,從基本觀念到實務情境,深入介紹主幹開發的做法、適用條件與取捨,一起重新認識這個看似簡單、卻又值得仔細研究的開發方式。
提到主幹開發,你會想到什麼? 過去有聽過朋友對於主幹開發的印象是「不開分支」或「直接把程式碼推上主幹」。 我會回答:「是這樣!但不是這樣!」 確實在主幹開發的流...
2012 年的時候,我與朋友一起接了一個網站的案子,當年的我還只是個剛學寫程式的菜鳥新手。我們使用 Linux 主機架了網站伺服器(Web Server),並透...
查閱歷史、比較差異,是版本控制提供的基本功能。至於我們希望透過這些功能達成什麼目的,Day 2 已經有說明。 接下來,團隊成員可能需要各自從不同的版本出發,進行...
原始碼合併完後,要如何確認組合後的程式正常運作? 這一篇會從「整合」的目的開始,逐步說明需要確認的事情。 整合的定義 各自完成的原始碼,放在一起後不一定能照原本...
延續 Day 4 最後提到的問題:當完成手上的任務後,其他開發者就能立刻取得並使用修改後的程式嗎? 程式可能還在自己的分支上尚未合併;也可能已經合併,但還在等整...
當團隊各自開發的程式沒有及早整合,需求認知差異或不相容的行為,可能延遲到後期才被發現;即使程式已經完成,其他人也可能因為整合與驗證尚未完成,無法直接使用,依賴這...