理解git的基本概念對git的使用很有幫助
一、git與其他版本工具的區別
1.主要區別在于對待數據的方法上。
傳統的版本控制工具以文件變更列表的方式儲存信息,這類vcs工具將他們保存的信息看作是一組基本文件和每個文件隨時間逐步積累的差異。而git則是將數據看作是對小型文件系統的一組快照,每次提交更新時,將所有的文件制作成一個快照并且保存這個快照的索引,為了高效,若文件沒有修改,git不在重新儲存該文件,而是保留一個鏈接指向之前儲存過的文件。Git對待數據更新是一個快照流。
2.本地數據訪問
git絕大部分的操作都只需要訪問本地文件和資源,一般不需要網絡的其他計算機信息。(操作工作區和版本庫)
3.git保證完整性。
git所有的數據都儲存在計算機校驗和,然后通過計算機校驗和來進行引用。這就意味著你不可能在不知道git校驗和的情況下來引用、更改任何的文件內容和目錄內容。
二、Git的基本概念
1.校驗和
git中所有的數據在存儲前都計算校驗和,然后使用校驗和進行引用。這套機制使得在git不知情時更改任何文件的內容。git的校驗和的機制叫做 SHA-1散列(hash 哈希值),是基于git文件的內容或目錄計算出來的40位十六機制字符串(0-9和a-f組成)。
2.git項目的三個工作區域
git倉庫、工作目錄、暫存區
圖片來自廖雪峰Git教程
3.git的三種狀態
已提交、已修改、以暫存
- 已修改(modified)---修改了文件,但是將文件保存到數據庫中
- 已暫存(staged)---將一個已修改的文件做了標記,保存在暫存區
- 已提交(committed)---將暫存區的數據安全的的保存到本地的數據庫中