有一天,當我像往常同樣打開SourceTree提交代碼,而後推送的時候,我忽然意識到我只是根據肌肉記憶完成這個過程,我壓根不知道這其中到底發生了什麼。這是個很嚴重的問題,做爲一個技術人員,竟然只知足於使用工具,而對工具的原理毫無探索,因而我進行了很深入的反思。git
我以爲一個好知的人不僅是要知其然,更要知其因此然,因此我會認真的學習Git,並探索Git的背後原理。vim
注: 如下操做都是在OS X系統下進行的,我強烈建議動手實踐,去折騰,去探索bash
我相信這是全部人的第一步,配置本身的名稱和郵箱:編輯器
$ git config --global user.name "iroyzhang"
$ git config --global user.email iroyzhang@icloud.com
名稱有雙引號,而郵箱沒有,我這是根據官方文檔來的,實際上有或者沒有都是能夠的
擴展命令:
git config --global --list // 查看當前用戶Git配置變量
注:
1.每臺計算機上只須要配置一次,程序升級時會保留配置信息,能夠在任什麼時候候再次經過運行命令來修改它們
2.每個Git的提交都會使用這些信息,並寫入到每一次提交中
複製代碼
上面配置了名字和郵箱地址,既然只須要配置一次,那說明git config確定把配置信息保存到了某個地方,下面來找到它:工具
$ cd ~ // 進入當前用戶目錄(通常打開Terminal就是了)
$ ls -a // 文件默認是隱藏的,此命令可顯示出配置文件,名稱爲. gitconfig
$ open -t .gitconfig // 經過文本編輯器打開,固然也能夠用Vim打開
打開文件後,全部上面git config配置的信息都會在裏面
git config:
git config能夠把配置的信息保存到配置文件裏,也可使用git config查看配置文件的內容,說明它能夠讀寫配置文件
擴展命令:
git config --gloabl user.name // 查看當前用戶配置的用戶名
git config --gloabl --unset user.name // 刪除當前用戶用戶名
複製代碼
一臺電腦會有多個用戶,若是這幾個用戶是不一樣的人,那他們的名字和郵箱確定是不一樣的,因此每一個用戶都須要定製本身的Git配置環境:學習
先按如下輸入:
$ git config
這時會顯示全部git config的選項,其中有一組分類叫作Config file location,其中包含--gloabl、--system、--local
--global // 使用全局的配置文件
--system // 使用系統的配置文件
--local // 使用倉庫的配置文件
Config file location的意思就是配置文件的路徑,也就說上面的這些選項可讓git config讀寫不一樣路徑的配置文件
git config --list
上面這個查看命令由於沒有指定讀取哪一個配置文件,因此會讀取多個配置文件,變量信息可能會重複
擴展命令:
git help config // 查看config幫助,進入後可鍵入q以退出
git config --help // 同上同樣效果
git config --local --list // 查看本地倉庫的Git配置
git config --system --list // 查看系統的通用Git配置
注:
1.--system的配置文件在根目錄下,即/etc,文件名稱爲gitconfig
2.--local的配置文件在當前工做目錄的.git目錄下,文件名稱爲config
3.local的配置文件優先級大於global的配置文件,global的配置文件優先級大於system的配置文件
4.在倉庫下,git config缺省選項時,默認使用--local,倉庫的配置信息能夠被任意修改
複製代碼
當把改動添加到暫存區後,執行如下命令:
git commit
這時就會顯示文本編輯器
指定文本編輯器爲vim(mac電腦默認的是vim,不指定也行)
$ git config --global core.editor vim
注:
若是沒有指定文本編輯器,Git會使用系統默認文本編輯器
複製代碼