如果你是一個人單幹,而且從來不想著讓代碼回到N久以前的狀態,那麼可以直接忽略這篇文章,否則,還是愛吧。。。
詞庫: Repository(倉庫)、Trunk(主幹)、Branch(分支)、Revision(修改)
常用版本控制軟體有以下幾個:svn, git, mercurial, vss,分別介紹一下。
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
subversion (簡稱svn) 是近年來崛起的版本管理軟體,是cvs的接班人。目前,絕大多數開源軟體都使用svn作為代碼版本管理軟體。
Subversion將檔案存放在中心版本庫裡。這個版本庫很像一個普通的檔案伺服器,不同的是,它可以記錄每一次檔案和目錄的修改情況。這樣就可以籍此將資料恢複到以前的版本,並可以查看資料的更改細節。正因為如此,許多人將版本控制系統當作一種神奇的“時間機器”。
經典的工作流程:
1、從伺服器下載項目組最新代碼 2、進入自己的分支,進行工作,每隔一段時間向伺服器自己的分支提交一次代碼。 3、下班時間快到了,把自己的分支合并到伺服器主分支上,一天的工作完成,並反映給伺服器。 詳細教程: http://wenku.baidu.com/view/aa148e66783e0912a2162a3a.html
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Git 是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理
分布式和集中式的最大區別在於開發人員可以本地提交。每個開發人員機器上都有一個伺服器的資料庫
經典的Git開發過程:
1:從伺服器上複製資料庫(包括代碼和版本資訊)到單機上。
2:在自己的機器上建立分支,修改代碼。
3:在單機上自己建立的分支上提交代碼。
4:在單機上合并分支。
5:建立一個分支,把伺服器上最新版的代碼fetch下來,然後跟自己的主分支合并。
6:產生補丁(patch),把補丁發送給主開發人員。
7:看主開發人員的反饋,如果主開發人員發現兩個一般開發人員之間有衝突(他們之間可以合作解決的衝突),就會要求他們先解決衝突,然後再由其中一個人提交。如果主開發人員可以自己解決,或者沒有衝突,就通過。
8:一般開發人員之間解決衝突的方法,開發人員之間可以使用pull 命令解決衝突,解決完衝突之後再向主開發人員提交補丁。
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Mercurial
具體的比較在這裡:
http://article.yeeyan.org/view/243154/211055
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
vss 微軟的東西,,,初學者可以用一用,其它的使用者實在是太少了。