關于版本控制
什麼是“版本控制”?我為什麼要關心它呢? 版本控制是一種記錄一個或若幹檔案内容變化,以便将來查閱特定版本修訂情況的系統。
本地版本控制系統
許多人習慣用複制整個項目目錄的方式來儲存不同的版本,或許還會改名加上備份時間以示差別。 這麼做唯一的好處就是簡單,但是特别容易犯錯。 有時候會混淆所在的工作目錄,一不小心會寫錯檔案或者覆寫意想外的檔案。
如果你在學校寫過畢業論文,那你一定遇見過這樣的問題

一個論文翻來覆去的改,寫一點覺得有問題,寫一點還覺得有問題,還不容易寫好了,導師還挑刺,還讓你改。。。。。無窮無盡。。
- 看着這一堆亂七八糟的檔案,你自己也不記得,每一個檔案到底寫了什麼内容,還得一個個看,想删又不敢删。。。
- 當你寫完了畢業論文,你還得用U盤拷給導師,或者發個郵件給他,但是你回家可能還得改論文,那你發給導師的論文和你本地最新的論文又不一緻了。。
于是這麼多令人fuck指的操作,你就希望有沒有一個軟體,幫你記錄檔案變動的操作,并且同僚還能一起操作,不需要自己傳輸檔案,想知道變動了什麼,隻需要去軟體裡看看,這是不是很nb?
這個軟體雛形?
版本 | 檔案名 | 使用者 | 說明 | 日期 |
---|---|---|---|---|
1 | 美國皇家大學畢業論文v1.doc | yuchao | 論文初稿 | 7/12 10:38 |
2 | 美國皇家大學畢業論文v2.doc | 論文修改版 | 7/12 18:09 | |
3 | 美國皇家大學畢業論文v3.doc | wupeiqi | 武沛奇幫我修改論文 | 7/13 9:51 |
4 | 美國皇家大學畢業論文v4.doc | mjj | 馬金聚幫我修改論文 | 7/14 15:17 |
GIT簡介
git入門
集中式和分布式版本控制
Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分布式版本控制系統,集中式和分布式版本控制系統有什麼差別呢?
先說集中式版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,是以要先從中央伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給中央伺服器。中央伺服器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。
集中式版本控制,典型代表SVN
集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網路内還好,帶寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能送出一個10M的檔案就需要5分鐘,這還不得把人給憋死啊。
而且如果集中式版本伺服器當機了,所有人都沒法工作。
分布式版本控制
分布式版本控制,沒有中央伺服器的概念,每個人都有自己的版本庫,是以每個人在工作時候,不需要聯網,版本庫本地即可管理。
既然每個人都是一個完整的版本庫,同僚之間如果需要協作開發,就需要找一個用于“交換檔案”的中央伺服器,這個伺服器不存在也不影響大家幹活,隻是用于交換檔案内容。
GIT最強大的功能還有分支管理,遠甩SVN等軟體。
努力成為一個開發者
個人站點:www.pythonav.cn