最近在用SVN進行提交代碼的操做,忽略了一個分支的概念,一直認爲咱們始終在一個代碼倉內進行代碼的修改和管理,直到本身在服務器上搭建SVN庫的時候慢慢了解分支存在的意義。服務器
SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。互聯網上不少版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多我的共同開發同一個項目,共用資源的目的。開放源代碼
當每一版本發出前,又須要進行新功能開發,即從當前主線copy一份和主線同樣的代碼倉,在不影響主線功能的前提下,開發新功能。設計
Copy出來的新代碼倉即爲分支Branch,原代碼倉即爲主線Trunk。版本控制
當創建的Branch功能不是開發新功能,而是穩定代碼時,稱爲Tag。資源
新功能開發完後,需再手動由分支合併(merge)到主線.。開發
任何狀況下,版本發佈時,編譯源碼均已主線爲準。源碼
同一個功能(feature),不推薦同時存在2個以上的分支。io