什麼是「版本控制」?我爲何要關心它呢? 版本控制是一種記錄一個或若干文件內容變化,以便未來查閱特定版本修訂狀況的系統。服務器
許多人習慣用複製整個項目目錄的方式來保存不一樣的版本,或許還會更名加上備份時間以示區別。 這麼作惟一的好處就是簡單,可是特別容易犯錯。 有時候會混淆所在的工做目錄,一不當心會寫錯文件或者覆蓋意想外的文件。分佈式
若是你在學校寫過畢業論文,那你必定碰見過這樣的問題spa
一個論文翻來覆去的改,寫一點以爲有問題,寫一點還以爲有問題,還不容易寫好了,導師還挑刺,還讓你改。。。。。無窮無盡。。3d
因而這麼多使人fuck指的操做,你就但願有沒有一個軟件,幫你記錄文件變更的操做,而且同事還能一塊兒操做,不須要本身傳輸文件,想知道變更了什麼,只須要去軟件裏看看,這是否是很nb?版本控制
版本 | 文件名 | 用戶 | 說明 | 日期 |
---|---|---|---|---|
1 | 美國皇家大學畢業論文v1.doc | yuchao | 論文初稿 | 7/12 10:38 |
2 | 美國皇家大學畢業論文v2.doc | yuchao | 論文修改版 | 7/12 18:09 |
3 | 美國皇家大學畢業論文v3.doc | wupeiqi | 武沛奇幫我修改論文 | 7/13 9:51 |
4 | 美國皇家大學畢業論文v4.doc | mjj | 馬金聚幫我修改論文 | 7/14 15:17 |
GIT簡介 xml
Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分佈式版本控制系統,集中式和分佈式版本控制系統有什麼區別呢?blog
先說集中式版本控制系統,版本庫是集中存放在中央服務器的,而幹活的時候,用的都是本身的電腦,因此要先從中央服務器取得最新的版本,而後開始幹活,幹完活了,再把本身的活推送給中央服務器。中央服務器就比如是一個圖書館,你要改一本書,必須先從圖書館借出來,而後回到家本身改,改完了,再放回圖書館。開發
集中式版本控制,典型表明SVNit
集中式版本控制系統最大的毛病就是必須聯網才能工做,若是在局域網內還好,帶寬夠大,速度夠快,可若是在互聯網上,遇到網速慢的話,可能提交一個10M的文件就須要5分鐘,這還不得把人給憋死啊。io
並且若是集中式版本服務器宕機了,全部人都無法工做。
分佈式版本控制,沒有中央服務器的概念,每一個人都有本身的版本庫,所以每一個人在工做時候,不須要聯網,版本庫本地便可管理。
既然每一個人都是一個完整的版本庫,同事之間若是須要協做開發,就須要找一個用於「交換文件」的中央服務器,這個服務器不存在也不影響你們幹活,只是用於交換文件內容。
GIT最強大的功能還有分支管理,遠甩SVN等軟件。