Git:更好的SVN
svn做了什么
svn其實(shí)只做了一件事情:明確了文件的變動(dòng)記錄和變動(dòng)人
這樣做有什么好處呢造寝?
- 如果文件改錯(cuò)了荐吉,便于回溯钠龙,找出正確的版本。
- 明確了文件的每次變動(dòng)额港,便于做review饺窿,針對代碼尤其有效。所以SVN也被稱為VCS工具移斩,即
版本控制系統(tǒng)
肚医。
svn做不好什么呢?
用過svn的人向瓷,應(yīng)該都了解svn有一個(gè)很標(biāo)準(zhǔn)的目錄結(jié)構(gòu)肠套,長這個(gè)樣子:
svn://proj/
|
+-trunk
+-branches
+-tags
這是一個(gè)標(biāo)準(zhǔn)的布局,trunk為主開發(fā)目錄猖任,branches為分支開發(fā)目錄你稚,tags為tag存檔目錄(不允許修改)。但是具體這幾個(gè)目錄應(yīng)該如何使用超升,svn并沒有明確的規(guī)范入宦,更多的還是用戶自己的習(xí)慣。
這個(gè)標(biāo)準(zhǔn)是人為規(guī)定室琢,實(shí)際操作中難以管理,因?yàn)閎ranche落追、tag都是從trunk復(fù)制中復(fù)制出來的代碼盈滴,在磁盤上同時(shí)存在,用戶需要同時(shí)管理多個(gè)目錄轿钠、多份文件巢钓。
git怎么管理branche、tag疗垛?
很簡單症汹。
- 每次工作選擇一個(gè)branche作為開發(fā)上下文
- 每次提交用一個(gè)SHA1來做唯一標(biāo)識。同時(shí)支持將這次提交標(biāo)識為tag贷腕。
這樣背镇,在本地永遠(yuǎn)只有一份代碼。透過提交記錄泽裳,可以隨時(shí)切換到任意branche的任意版本瞒斩。
快速入門
好用的git客戶端
- SourceTree
- TortoiseGit