先說分支的作用:分支不是GIT的專利,早在CVS時代就有了。分支對於團隊來說作用太大了。比如說一個專案現在是1.0版,那麼開發團隊可能要同時進行1.1版和2.0版的開發,這樣程式碼就會出現較大分歧。這時候就需要用到分支了,不同的任務組在不同的分支上開發,互相之間不會影響。再比如說,需要向專案中新增一個新功能,一般的團隊都不會直接在主分支上修改,都會新建一個分支,在上面更改程式碼。這樣做的好處就是保證主線程式碼的完整性和可用性,也就是說,主線上都是穩定的程式碼,可以直接拿來發布的。
再說說分支在GIT上的特點:GIT的技術可以說是非常強大,說一切開發都依賴於分支一點都不過分。一般專案的master分支都是穩定的程式碼,可以直接釋出或者被專案之外的人使用。新特性和BUG修改都在不同的分支上進行開發和測試。這樣規範了整個軟體的開發流程。分支之間的互不影響這種特性可以增加團隊合作的效率。GIT分支的另外一個重要特性就是可以合併不同軟體倉庫(fork)的分支。大體就是:開發團隊有一個主軟體倉庫,開發者可以fork這個倉庫,相當於克隆了一個私有的軟體倉庫,然後開發者就可以在自己的軟體倉庫中建立分支並開發測試,測試完畢之後,可以向主軟體倉庫提交merge request,這樣新開發的特性就會被合併到主軟體倉庫的某個分支中。這種特性極大地推動了開源專案,多年前參加開源專案都是神話,自從GIT出現後,每個人都可能成為開源專案的貢獻者,就是基於這種特性(請參照Github的pull request,和merge request是同一個東西)。
先說分支的作用:分支不是GIT的專利,早在CVS時代就有了。分支對於團隊來說作用太大了。比如說一個專案現在是1.0版,那麼開發團隊可能要同時進行1.1版和2.0版的開發,這樣程式碼就會出現較大分歧。這時候就需要用到分支了,不同的任務組在不同的分支上開發,互相之間不會影響。再比如說,需要向專案中新增一個新功能,一般的團隊都不會直接在主分支上修改,都會新建一個分支,在上面更改程式碼。這樣做的好處就是保證主線程式碼的完整性和可用性,也就是說,主線上都是穩定的程式碼,可以直接拿來發布的。
再說說分支在GIT上的特點:GIT的技術可以說是非常強大,說一切開發都依賴於分支一點都不過分。一般專案的master分支都是穩定的程式碼,可以直接釋出或者被專案之外的人使用。新特性和BUG修改都在不同的分支上進行開發和測試。這樣規範了整個軟體的開發流程。分支之間的互不影響這種特性可以增加團隊合作的效率。GIT分支的另外一個重要特性就是可以合併不同軟體倉庫(fork)的分支。大體就是:開發團隊有一個主軟體倉庫,開發者可以fork這個倉庫,相當於克隆了一個私有的軟體倉庫,然後開發者就可以在自己的軟體倉庫中建立分支並開發測試,測試完畢之後,可以向主軟體倉庫提交merge request,這樣新開發的特性就會被合併到主軟體倉庫的某個分支中。這種特性極大地推動了開源專案,多年前參加開源專案都是神話,自從GIT出現後,每個人都可能成為開源專案的貢獻者,就是基於這種特性(請參照Github的pull request,和merge request是同一個東西)。