版本控制發展歷史簡單了解 Git

2022-06-28 18:12:13 字數 2228 閱讀 6857

開發的過程是乙個不斷迭代的過程,許多人在本地複製整個專案目錄的方式來儲存不同版本,加上時間之類的以示區別,這麼做的唯一好處就是簡單,但是也特別容易犯錯。

為了解決這個問題,很久以前人們就開發了許多種本地版本控制系統,大多數都是採用某種簡單的資料庫來記錄檔案的歷次更新差異。

首為代表的就是rcs,rcs的工作原理是在硬碟上儲存補丁集(檔案修訂前後的變化);通過應用所有的補丁,可以重新計算出各個版本的檔案內容。

特點:本地通過補丁集記錄檔案的變動,應用不同的補丁集,可以計算出各個版本的檔案內容。

缺點:無法協同合作,本地丟失,全部丟失。。。

為了解決本地版本控制的問題,為了滿足日益增加的協同工作的需求,諸如cvssubversionperforce等,都有乙個

單一的集中管理的伺服器

,儲存所有檔案的修訂版本,協同工作的人都可以通過客戶端連線到這台伺服器,取出最新的檔案或者提交更新。

特點:每個人都可以在一定程度上看到其他人在做什麼,管理員可以輕鬆掌握每個開發者的許可權,統計集中資料。

缺點:**伺服器宕機,中心資料庫所在磁碟損壞等。全員自閉。。。

為了解決集中化版本控制系統所面臨的問題,於是後來出現了分布式版本控制系統。這類系統中,比較著名的有:gitmercurialbazaardarcs等。

客戶端不僅僅只是提取最新版本的檔案快照,而是把**倉庫完整地映象下來,包括了完整的歷史記錄。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何乙個映象出來的本地倉庫恢復。因為每一次的轉殖操作,實際上都是一次對**倉庫的完整備份。

2023年,分布式版本管理系統bitkeeper收回了作為世界級開源專案linux免費使用的權利。這迫使以linux締造者,linus torvald為受的linux開源社群開發出自己的版本管理系統。也就是現在的git。

git直接記錄快照,而非差異比較

git 和其他的分布式版本管理系統的最主要差異,在於對待資料的方法不同。其他大部分分系統,以檔案變更列表的方式儲存資訊,通常被稱作基於差異

(delta-based)

的版本控制。

但是git與幾乎所有其他版本控制系統的重要區別,就是git更像是把資料看作是對小型檔案系統的一系列快照。在git中,沒當你提交更新或者儲存專案狀態時,它基本上就會對當時的全部檔案建立乙個快照並儲存這個檔案的快照的索引。為了效率,如果檔案沒有被修改,git並不會再重新儲存該檔案,而是只保留乙個鏈結指向之前儲存的檔案。git 對待資料,更像是乙個快照流

git近乎所有的操作都是本地執行

在git中的絕大多數操作都只需要訪問本地檔案和資源,一般不需要來自網路上的其他計算機的資訊。這使得git可以 非常快速。

例如,要瀏覽專案的歷史,git並不需要外連到伺服器去獲取歷史,然後在顯示出來。它只需要從本地資料庫中讀取。你能立即檢視到歷史。

如果你想檢視當前版本與乙個月前的版本之前引入的修改。git會查詢乙個月前的問津啊做一次本地的差異計算,而不是由遠端伺服器處理或者從遠端伺服器拉回舊版本的檔案再來進行本地處理。

這都意味著,你可以在離線的時候或者沒有vpn的時候,幾乎可以進行任何操作。例如在飛機火車上想做些工作,就能提交到本地副本,直到有網路連線的時候,再進行上傳。

這些在其他版本管理系統上幾乎不可能或者費力。

(本文節選總結自 《pro git》- scott chacon and ben straub 一書)

版本控制工具Git之歷史與基本配置02

同生活中的許多偉大事物一樣,git 誕生於乙個極富紛爭大舉創新的年代。linux 核心開源專案有著為數眾廣的參與者。絕大多數的 linux 核心維護工作都花在了提交補丁和儲存歸檔的繁瑣事務上 1991 2002年間 到 2002 年,整個專案組開始啟用乙個專有的分布式版本控制系統 bitkeeper...

git版本控制器上手超簡單

本地 庫,其實就是我們的 目錄 本地倉庫 如果非要區別普通 目錄和git倉庫目錄,那就是基於git的 目錄裡面會多乙個.git的目錄,這個目錄一般是不可見的。如何將乙個普通 目錄變成git工作目錄,其實很簡單。我們可以使用cmd git bash或任何乙個命令列工具,進入工作目錄,然後執行下面這行 ...

版本控制工具 Git和GitHub的簡單使用

1.版本控制工具的種類 2.git 簡介 2.1 git 的產生源於linux,因此 git 的命令和 linux 全面相容,git 是用c語言開發的 開源的,git 很快是因為 c 語言通過減少執行的開銷來實現的。2.2 git 提供了協同修改 資料備份 版本管理 許可權控制 分支管理等。2.3 ...