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