▓▓▓▓▓▓ 大致介紹 Git是一款免費、開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的項目,可以有效、高速的處理從很小到非常大的項目版本管理。 Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體 ▓▓▓▓▓▓ Git的誕生 G ...
▓▓▓▓▓▓ 大致介紹
Git是一款免費、開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的項目,可以有效、高速的處理從很小到非常大的項目版本管理。
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體
▓▓▓▓▓▓ Git的誕生
Git是由Linus編寫的,這個名字應該不會陌生,著名的Linux就是Linus的傑作!(厲害的人幹啥都厲害),雖然Linus創建了Linux,但是Linux的壯大是由全世界熱心的參與者共同努力的結果,而在2002年以前,世界各地的志願者把源代碼文件通過diff的方式發給Linus,然後由Linus本人通過手工方式合併代碼!
可想而知Linus的心有多累,但在2002年Linus選擇了一個商業的版本控制系統BitKeeper,BitKeeper的東家BitMover公司出於人道主義精神,授權Linux社區免費使用這個版本控制系統
但是由於某種原因BitMover公司在2005年收回了Linux社區的免費使用權。然後Linus花了兩周時間自己用C寫了一個分散式版本控制系統,這就是Git!一個月之內,Linux系統的源碼已經由Git管理了!(厲害的人幹啥都厲害)
Git迅速成為最流行的分散式版本控制系統,尤其是2008年,GitHub網站上線了,它為開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。
▓▓▓▓▓▓ 版本控制
◆ 本地版本控制系統
◆ 集中化的版本控制
◆ 分散式的版本控制
▓▓▓▓▓▓ 本地版本控制系統
大多的本地版本控制系統都是採用某種簡單的資料庫來記錄文件的歷次更新差異
▓▓▓▓▓▓ 集中化的版本控制系統( Centralized Version Control Systems,簡稱 CVCS )
集中式版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給中央伺服器。中央伺服器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。
集中式版本控制系統有幾個明顯的缺點:
1、如果遇到中央伺服器故障,那麼誰都無法進行提交,也就無法進行協同工作
2、必須聯網進行操作
▓▓▓▓▓▓ 分散式的版本控制系統( Distributed Version Control System,簡稱 DVCS )
客戶端並不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何一個鏡像出來的本地倉庫恢復。因為每一次的提取操作,實際上都是一次對代碼倉庫的完整備份。
分散式版本控制系統根本沒有“中央伺服器”,每個人的電腦上都是一個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了
參考資料: