git版本控制工具的學習

2021-07-10 21:03:40 字數 1595 閱讀 1977

1 關於版本控制

版本控制是一種記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。有以下三種版本控制系統:

1. 本地版本控制系統

許多人習慣用複製整個專案目錄的方式來儲存不同的版本,或許還會改名加上備份時間以示區別。這麼做唯一的好處就是簡單。不過壞處也不少:有時候會混淆所在的工作目錄,一旦弄錯檔案丟了資料就沒法撤銷恢復。

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

2. 集中化的版本控制系統

集中化的版本控制系統( centralized version control systems,簡稱 cvcs )能夠讓在不同的開發系統上的開發人員協同工作。這類系統,諸如 cvs,subversion 以及 perforce 等,都有乙個單一的集中管理的伺服器,儲存所有檔案的修訂版本,而協同工作的人們都通過客戶端連到這台伺服器,取出最新的檔案或者提交更新。多年以來,這已成為版本控制系統的標準做法

3. 分布式版本控制系統

分布式版本控制系統(distributed version control system,簡稱 dvcs ),像 git,mercurial,bazaar 以及 darcs 等,客戶端並不只提取最新版本的檔案快照,而是把**倉庫完整地映象下來。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何乙個映象出來的本地倉庫恢復。因為每一次的提取操作,實際上都是一次對**倉庫的完整備份,

更進一步,許多這類系統都可以指定和若干不同的遠端**倉庫進行互動。籍此,你就可以在同乙個專案中,分別和不同工作小組的人相互協作。你可以根據需要設定不同的協作流程,比如層次模型式的工作流,而這在以前的集中式系統中是無法實現的。

2 關於git

git是分布式版本控制系統的乙個完美實現,它與集中式版本控制系統svn的基本區別如下:

git是分布式的,而svn不是

git和svn一樣有自己的集中式版本庫或伺服器。但,git更傾向於被使用於分布式模式,也就是每個開發人員從中心版本庫/伺服器上chect out**後會在自己的機器上轉殖乙個自己的版本庫。

git將內容按元資料方式儲存,而svn是按檔案

所有的資源控制系統都是把檔案的元資訊隱藏在乙個類似.svn,.cvs等的資料夾裡。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。因為,.git目錄是處於你的機器上的乙個轉殖版的版本庫,它擁有中心版本庫上所有的東西,例如標籤,分支,版本記錄等。

git分支和svn分支的不同

svn的分支就是版本庫中的另外乙個目錄,而git的分支卻是整個版本庫的乙個快照,而且可以在同乙個工作目錄下快速的在幾個分支間切換。

git沒有乙個全域性的版本號,而svn有

svn的版本號實際是任何乙個相應時間的源**快照。而git並沒有這樣的乙個全域性版本號,這也是git缺少的最大的乙個特徵

git的內容完整性要優於svn

git的內容儲存使用的是sha-1雜湊演算法。這能確保**內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞。

git的基本工作流程如下:

在工作目錄中修改某些檔案。

對修改後的檔案進行快照,然後儲存到暫存區域。

提交更新,將儲存在暫存區域的檔案快照永久轉儲到 git 目錄中。

學習版本控制工具Git

1 怎樣理解版本控制 版本控制是管理資料變更的藝術,無論資料變更時來自同乙個人,還是來自不同的人 乙個團隊 版本控制系統不但要忠實地記錄資料的每一次變更,還要能夠幫助還原任何一次歷史變更,以及團隊的協同工作等.2 傳統的集中式版本控制系統不能有效地管理分支和進行分支合併.集中管理的版本庫只有唯一的分...

git版本控制工具學習筆記

git是目前世界上最先進的分布式版本控制系統,版本控制是一種記錄乙個或若干檔案內容變化,以便將來查閱待定版本修訂情況的系統。工作區與版本庫 工作區 就是你在電腦裡能看到的目錄 版本庫 工作區有乙個隱藏目錄.git,就是git的版本庫 建立版本庫 切換目錄位置cd f task 顯示當前目錄位置 pw...

git 版本控制工具入門學習

1.git使用流程是什麼樣的?2.git是集中式布局的版本管理工具嗎?不是的,git是分布式的,git的在開發中一直遵循著以下幾項原則 3.git的三種狀態分別是哪三種?對於乙個任何的檔案,git檔案的狀態都只有三種,分別是 已提交,已修改,已暫存,已提交指的事修改的檔案已經被儲存到本地 本地倉庫中...