http://www.cnblogs.com/YingYue/p/6118972.html
以svn為例,git的master相當(dāng)于trunk沪停,dev分支相當(dāng)于branches
-----------------------------------------------------------------------------------------
trunk:是用來做主方向開發(fā)的一直向前進(jìn)行浆兰,一個新模塊的開發(fā),這個時候就放在trunk,當(dāng)模塊開發(fā)完成后对省,需要修改蝗拿,就用branch。
branch:是用來做并行開發(fā)的蒿涎,這里的并行是指和trunk進(jìn)行比較哀托。
tag:是用來做一個milestone(里程碑)的,不管是不是發(fā)布版本劳秋,但都是一個可用的版本仓手,不需要修改如果要修改就要選一個tag進(jìn)行branche開發(fā)。
----------------------------------------------------------------------------------------------
為什么要分3個目錄玻淑?且都是重復(fù)的代碼重新Copy嗽冒?來看下下面這個例子就明白這樣做的好處了。
例如:開發(fā)一個聊天軟件QQ补履,第一期只要求軟件具有基本的聊天功能添坊,后期會加入視屏聊天、魔法表情箫锤、換皮膚等功能贬蛙。
當(dāng)?shù)谝黄陂_發(fā)完,經(jīng)測試人員測試后沒問題谚攒。此時應(yīng)該給予當(dāng)前代碼庫打tag命名為QQ_tag_release_v1.0.0速客,同時trunk如火如荼進(jìn)入v2.0.0開發(fā),但是此時經(jīng)廣大用戶反饋v1.0.0的QQ登錄后經(jīng)常閃退五鲫,由于v2.0.0正在開發(fā)即使bug改了也發(fā)布不了溺职。那么就要基于QQ_tag_release_v1.0.0的標(biāo)記(tag)做一個分支(branch)命名為QQ_branch_bugfix_v1.0.0并基于這個分支快速進(jìn)行BUG修改,等到BUG修改結(jié)束后做一個tag命名為QQ_tag_release_v1.0.1位喂,根據(jù)需要決定QQ_branch_bugfix_v1.0.0是否合并(Merge)并入主干(trunk)浪耘。