【Git體驗】Git原理及基礎
原理:分布式版本控制系統像 Git,Mercurial,Bazaar 以及 Darcs 等,用戶端並不只提取最新版本的檔案快照,而是把原始的代碼倉庫完整地鏡像下來。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何一個鏡 像出來的本地倉庫恢複。因為每一次的提取操作,實際上都是一次對代碼倉庫的完整備份。
更進一步,許多這類系統都可以指定和若干不同的遠端代碼倉庫進行互動。籍此,你就可以在同一個項目中,分別和不同工作小組的人相互協作。你可以根據需要設定不同的協作流程,比如層次模型式的工作流程,而這在以前的集中式系統中是無法實現的。
² 快速度
² 簡單
² 對非線性 並發(允許上千個並行開發的分支)
² 完全分布式
基於Gitolite的Git服務架設
Fedora通過Http Proxy下載Git
在Ubuntu Server上安裝Git
伺服器端Git倉庫的建立(Ubuntu)
Linux下Git簡單使用教程(以Android為例)
Git權威指南 PDF高清中文版
基礎:
1.非差異比較,直接記錄快照
Git 只關心檔案資料的整體是否發生變化,而大多數其他系統則只關心檔案內容的具體差異。
其他版本控制器工作,把修改的檔案,及其修改的內容都儲存下來了。
其他系統圖
Git 並不儲存這些前後變化的差異資料。實際上,Git 更像是把變化的檔案作快照後,記錄在一個微型的檔案系統中。每次提交更新時,它會縱覽一遍所有檔案的指紋資訊並對檔案作一快照,然後儲存一個指向這次快照 的索引。為提高效能,若檔案沒有變化,Git 不會再次儲存,而只對上次儲存的快照作一連結。
Git 儲存每次更新時的檔案快照
2.操作都是本地執行
在 Git 中的絕大多數操作都只需要訪問本地檔案和資源,不用連網。修改添加完成之後,儲存到本機快取區,Git 在本地磁碟上就儲存著所有當前項目的曆史更新,要查看曆史的版本也很容易,不需要連網,只有當你要把本機快取區資料push到伺服器上時候才需要連網。
但是其他的版本控制不能做到離開網路,比如使用cvs,你可以本地修改添加,但是需要比對曆史版本或者查看誰修改了版本,都需要連網支援,有時候訪問很慢的。
3.保證資料的完整性
儲存到git的資料都需要進行驗證和計算,並將此結果作為資料的唯一標識和索引。即,修改目錄或者內容之後,git是完全可以知道的。Git 使用 SHA-1 演算法計算資料的校正和。
4.git資料的3中狀態
已修改(modified):在工作環境中,增刪改後儲存到工作區域。
已暫存(staged):把工作區間的代碼提交到本機快取區,但是還沒提交到伺服器主幹上。
已提交(committed):同步到伺服器上,需要連網。
Git 的詳細介紹:請點這裡
Git 的:請點這裡
本文永久更新連結地址: