-
版本控制
什麼是版本控制?
我需要版本控制嗎?
…
如果你還沒使用過版本控制系統,或許你會有以上疑問,甚至更多疑問。希望後面的回答能讓你喜歡上版本控制系統,喜歡上git。
什麼是版本控制:顧名思義,版本控制就是一管理我們檔案版本的軟體系統。同一份檔案中會有不同的版本,編輯者會根據需求對新版本檔案添加(修改、删除)内容等。
當你對檔案修改一段時間後,你突然改變注意,想傳回前面的版本中(或者是策劃要求你這麼做)。如果你沒有儲存以前的版本怎麼辦?是不是很蛋疼。也許你會想着每次修改都另存為一個新版本,如果是開發時間很長,你還會記得哪個版本修改了哪些内容?一大堆的XX1、XX2、XX3…看着一大推這樣的檔案名,你會整個人都懵了。
最典型的例子就是,也許你寫畢業論文的時候就有過類似的經曆,畢業論文1、畢業論文2…畢業論文最終版,畢業論文最終版1….知道論文送出哪天還繼續修改。更糟糕的是,電腦硬碟壞了,我的天啊,要崩潰了,我要狗帶…這樣是不是很痛苦?
沒錯,版本控制系統就能幫你解決這些問題的煩惱。版本控制系統能幫你管理檔案的(版本)修改。
- 集中化版本控制系統
Git 簡介 如上圖所示,有一個專門用于管理版本的伺服器,儲存所有的檔案修訂版本及相關資訊記錄,例如時間、送出者等。使用者每一次對檔案做了修改後,可以先Server送出新版本,友善管理。如果使用者對想回到前面送出的某個版本,可以從Server復原到想要的版本。這大大友善了使用者的工作。
不同的Client直接跟Server互動工作,送出、克隆等操作。不同Client之間是互相獨立的。
優點:
1) 在一定程度上,同一個項目允許多人同時工作;
2) 管理者友善管理權限。
…
缺點:
1) 伺服器發生故障後,項目組的協同工作無法進行,且項目的曆史記錄丢失;
2) 為了儲存修改的内容,client需要頻繁跟server互動,如果不是區域網路,互動速度嚴重受影響。
…
- 分布式版本控制系統
Git 簡介 對于分布式版本控制系統,每個使用者中都有自己在本地的倉庫用來管理版本控制,每個用戶端也同時是一個伺服器。同時也可以用一個專門的伺服器的倉庫用來管理。
分布式版本控制系統的不同使用者之間,隻要是在同一個區域網路都是想通的,入上圖所示。是以某一個使用者協同工作的伺服器發生故障,并不會影響到整個團隊。
與集中式版本控制系統相比:
1) 分布式版本控制系統更安全,因為每個用戶端都是一個伺服器,擁有一個完整地版本庫,包括所有的曆史記錄等;
2) 工作效率會更高,因為對于小的修改,使用者可以先把新版本的檔案送出到本地的倉庫,本地送出的速度遠遠快于“遠端”送出;
3) 如果是在同一個區域網路,不同使用者之間可以互相通路;
4) 對于非區域網路協同工作的,可以建立一個連接配接網際網路的的伺服器倉庫。
-
Git的由來
Git的誕生跟Linux有很大的關系。這也就是為什麼Git最開始主要是在Linux系統上使用。
Linux的核心是一個開源的項目,有衆多的高手參與其中的開發。這樣對于送出更新檔、儲存歸檔等占了大多數時間。于是到了2002年,項目組開始啟用了一個分布式的版本控制系統(BitKeeper)來維護、管理項目版本控制。
可是由于某些原因,到2005年,BitKeeper同Linux開源社群的合作結束,意味着,Linux如果想繼續使用BitKeeper,必須得付費。于是Linux開源社群決定開發自己的版本控制系統。于是就有了今天的Git。
-
小結
1) 解釋版本控制系統
2) 介紹集中式、分布式版本控制系統及特點
3) Git的曆史
下篇部落格将寫關于Git的安裝