天天看點

git入門

關于版本控制

什麼是“版本控制”?我為什麼要關心它呢? 版本控制是一種記錄一個或若幹檔案内容變化,以便将來查閱特定版本修訂情況的系統。

本地版本控制系統

許多人習慣用複制整個項目目錄的方式來儲存不同的版本,或許還會改名加上備份時間以示差別。 這麼做唯一的好處就是簡單,但是特别容易犯錯。 有時候會混淆所在的工作目錄,一不小心會寫錯檔案或者覆寫意想外的檔案。

如果你在學校寫過畢業論文,那你一定遇見過這樣的問題

git入門

一個論文翻來覆去的改,寫一點覺得有問題,寫一點還覺得有問題,還不容易寫好了,導師還挑刺,還讓你改。。。。。無窮無盡。。

git入門
  • 看着這一堆亂七八糟的檔案,你自己也不記得,每一個檔案到底寫了什麼内容,還得一個個看,想删又不敢删。。。
  • 當你寫完了畢業論文,你還得用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是分布式版本控制系統,集中式和分布式版本控制系統有什麼差別呢?

先說集中式版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,是以要先從中央伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給中央伺服器。中央伺服器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。

git入門

集中式版本控制,典型代表SVN

集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網路内還好,帶寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能送出一個10M的檔案就需要5分鐘,這還不得把人給憋死啊。

而且如果集中式版本伺服器當機了,所有人都沒法工作。

git入門

分布式版本控制

分布式版本控制,沒有中央伺服器的概念,每個人都有自己的版本庫,是以每個人在工作時候,不需要聯網,版本庫本地即可管理。

既然每個人都是一個完整的版本庫,同僚之間如果需要協作開發,就需要找一個用于“交換檔案”的中央伺服器,這個伺服器不存在也不影響大家幹活,隻是用于交換檔案内容。

GIT最強大的功能還有分支管理,遠甩SVN等軟體。

git入門
git入門
git入門
git入門

git入門
git入門

git入門

git入門
git入門

git入門
git入門
git入門
git入門
git