Git和傳統版本控制系統的差別:
傳統版本控制系統:
1、将資料儲存的資訊看作是一組基本檔案和每個檔案随時間逐漸累積的差異
2、隻記錄發生改變的資料
3、每次克隆隻擷取最新的内容
Git:
1、将資料做成一組快照,每次送出更新,或在Git中儲存項目狀态時,它主要對當時的全部檔案制作一個快照并儲存這個快照的索引
2、如果檔案沒有修改,Git不再重新存儲該檔案,而是隻保留一個連結指向之前存儲的檔案
3、在Git中的絕大多數操作都隻需要通路本地檔案和資源,一般不需要來自網絡上其它計算機的資訊
4、Git中所有資料在存儲前都計算校驗和,若你在傳送過程中丢失資訊或損壞檔案,Git 就能發現
5、Git用以計算校驗和的機制叫做 SHA-1散列(哈希),它由40個十六進制字元組成字元串,基于Git中檔案的内容或目錄結構計算出來
6、Git資料庫中儲存的資訊都是以檔案内容的哈希值來索引,而不是檔案名
7、Git一般隻添加資料
8、用戶端并不隻提取最新版本的檔案快照,而是把代碼倉庫完整地鏡像下來,每一次的克隆操作,實際上都是一次對代碼倉庫的完整備份
Git的三種狀态:
已送出(committed):表示資料已經安全的儲存在本地資料庫中
已修改(modified):表示修改了檔案,但還沒儲存到資料庫中
已暫存(staged):表示對一個已修改檔案的目前版本做了标記,使之包含在下次送出的快照中
如果Git目錄中儲存着的特定版本檔案,就屬于已送出狀态
如果作了修改并已放入暫存區域,就屬于已暫存狀态
如果自上次取出後,作了修改但還沒有放到暫存區域,就是已修改狀态
Git項目的三個工作區:
Git倉庫:是Git用來儲存項目的中繼資料和對象資料庫的地方,是Git中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這裡的資料
工作目錄:是對項目的某個版本獨立提取出來的内容,這些從Git倉庫的壓縮資料庫中提取出來的檔案,放在磁盤上供你使用或修改
暫存區域:是一個檔案,儲存了下次将送出的檔案清單資訊,一般在Git倉庫目錄中,有時候也被稱作索引
Git的基本工作流程:
1、在工作目錄中修改檔案
2、暫存檔案,将檔案的快照放入暫存區域
3、送出更新,找到暫存區域的檔案,将快照永久性存儲到Git倉庫目錄
本文轉自 紅塵世間 51CTO部落格,原文連結:http://blog.51cto.com/hongchen99/1975002