Git 的優點是「開分支容易」跟「本地端交付」?別傻了!
我很喜歡這樣「有觀點」的文章!我心目中的「好文章」分成下列幾級:
(1) 詳述事實:人事時地物一樣不少,文章通順洗鍊。
(2) 融會貫通:不僅事實敘述詳細,還將許多事實整理在一起。
(3) 提出觀點:不僅將數個事實整理出來,還能從中說出自己的觀點。
本文就是屬於 (3) 等級的文章。先說說什麼是 git:它是一種「版本控制軟體」,可以把一份程式碼前後不同之處儲存下來,以便於讓你倒退回任一版本。有點「時光回溯器」的感覺。版本控制軟體由來已久,從最早的 CVS、Subversion、到最近的 git、mercurial、bazzar,是我相當推薦程式師必學的 7 大知識之一(Linux、vi、C 語言、make、版本控制軟體、HTML5、開發板...嘛~這份清單當然私心成分居多 XD)。其中的 git,又因受到 Linux 之父 Linus Torvalds 的青睞,用來管理全世界工程師送上來的 Linux 原始碼而聲名大噪。
git 官網一直強調它比別人強的有兩點:(1) 開分支快速(Fast Branching)。(2) 不需中央伺服器、沒有網路也可本地端交付(Local Commit)。我跟作者一樣,數年來這兩點一直無法說服我「為何要用 git」,因為我覺得這兩點對我而言不是「Killer Features」。不過作者發現,由於「開分支快速」,他鼓勵團隊成員多多開分支,想寫什麼功能,先針對 master(主版本)開個分支,等測試完成再「併入(Merge)」主版本。這讓程式師知道,我就算隨便寫也不會影響到主幹,進而鼓勵程式師創新。他認為,這才是「快速開分支」背後的真正價值。
原文還有更多觀點,喜歡的朋友不要錯過:
http://blog.8thcolor.com/2013/05/git-who-care-about-branches-its-all-about-collaboration-and-code-reviews/
git merge master 在 軟體開發學習資訊分享 Facebook 的最讚貼文
這裡面談到許多Fork與Pull request概念, Fork類似Branch, 但是要Merge必須經過Pull request這個來把關, 用來確保master版本可以隨時走出門, 如果在企業內部想要用同樣的Git fork與Pull request功能, CodeBeamer最新版也有提供, 並且針對權限控管功能加強
git merge master 在 軟體開發學習資訊分享 Facebook 的最讚貼文
這個code commit policy值得參考:-) 補充一點: Git的local branch很好用, 但是如果沒有養成在自己local branch修改code然後測試好再merge回去master的習慣, 對於Git branch功能等於是爆殄天物