簡介 Git是一個開源的分散式版本控制系統,可以對任何類型的文件進行版本控制。 特點 直接記錄快照,而非差異比較 大部分系統都是以文件變更列表的方式存儲每個文件與初始版本的差異, Git則把數據看作是對小型文件系統的一組快照,在文件發生變更時對當時的全部文件製作一個快照並保存這個快照的索引,形成一系 ...
簡介
Git是一個開源的分散式版本控制系統,可以對任何類型的文件進行版本控制。
特點
直接記錄快照,而非差異比較
大部分系統都是以文件變更列表的方式存儲每個文件與初始版本的差異,
Git則把數據看作是對小型文件系統的一組快照,在文件發生變更時對當時的全部文件製作一個快照並保存這個快照的索引,形成一系列快照流;
近乎所有操作都是本地執行
在Git中的絕大多數操作都只需訪問本地文件和資源,一般不需要來自網路的其它信息,因為在本地磁碟上就有項目的完整歷史;
保證完整性
Git中所有數據在存儲前都通過SHA-1哈希演算法計算校驗和,然後以校驗和來引用,這意味著不可能在Git不知情的情況下更改任何文件內容;
一般只添加數據
執行的Git操作幾乎只往Git倉庫中增加數據,很難讓Git執行任何不可逆操作,或者讓它以任何方式清除數據。
狀態轉換
Git有三種狀態:
- 已修改:表示修改了文件,但還沒保存至Git倉庫;
- 已暫存:表示對一個已修改文件的當前版本做了標記,使之包含在下次提交的快照中;
- 已提交:表示文件已經安全的保存至Git倉庫。
與之對應,Git項目具有以下三個工作區域:
- 工作目錄:對項目某個版本獨立提取出來的內容,放在磁碟以供修改與使用;
- 暫存區域:是一個文件,保存下次將提交的文件列表信息;
Git倉庫:Git用來保存項目元數據和文件對象的倉庫。
工作流程
- 在工作目錄中修改文件;
- 暫存文件,將文件快照放入暫存區域;
- 提交更新,找到暫存區域的文件,將文件快照永久性存儲到Git倉庫。
安裝
在Ubuntu系統中安裝Git:
$ sudo apt-get install git
配置
Git通過git config
工具來幫助設置控制Git外觀和行為的環境變數,這些變數保存在以下三個地方:
- /etc/gitconfig:包含系統上每一個用戶及其倉庫的通用配置,可使用
git config --system
讀寫配置變數; - ~/.gitconfig:只針對當前用戶,可使用
git config --global
讀寫配置變數; - 當前倉庫.git目錄中的config文件:只針對該倉庫,可使用
git config
讀寫配置變數。
上述文件,每一個級別都會覆蓋上一個級別的配置。
設置當前用戶的用戶名與Email地址:
$ git config --global user.name "username"
$ git config --global user.email "[email protected]"
查看配置信息:
$ git config --list