天天看點

git config指令使用

1. git config簡介

我們知道config是配置的意思,那麼git config指令就是對git進行一些配置。而配置一般都是寫在配置檔案裡面,那麼git的配置檔案在哪裡呢?互動一下,先問下大家。

你們所知的git配置檔案是放在哪裡的?git有幾個配置檔案呢?是的,聰明的你,稍微查查資料就知道咯,git裡面一共有3個配置檔案,首先是:倉庫級配置文

件:該檔案位于目前倉庫下,路徑.git/,檔案名為.gitconfig,這個配置中的設定隻對目前所在倉庫有效倉庫級配置檔案内容如下:

第二個是全局級配置檔案:win7下面路徑,在使用者目錄下,以個人的PC機為例,其路徑為:C:\Users\zuoyu.ht,檔案名為.gitconfig

全局級配置檔案内容如下:

最後是系統級配置檔案:本地git的安裝目錄下,以左禦的git安裝路徑為例:D:\Program Files\Git\etc,檔案名為:gitconfig,内容如下:

從三個圖的對比中,我們可以發現,有些配置項的名稱是一樣的,比如“core”,在git中,每一項的配置名稱又叫做“section”,

“section”下面的每一行對應着一個key和一個value。需要注意的是:系統級配置檔案不同于另外兩個配置檔案,是因為他少了

一個點,是以用vim打開的時候,是沒有高亮顯示的。”core”這個section在每個配置檔案中都有,那麼它git最終會調用哪個配置

檔案呢?這就要有一個先後順序了。

2. 配置檔案如何生效的

通俗的講就是行内樣式“<div style=“width:200px”>”,内嵌樣式“<style type=“text/css”>div{width:200px}</style>”

和外部樣式“<link rel=“stylesheet” href=“div.css”>”。這三種樣式的權重是行内>内嵌>外部。類似的,對于git來說,配置檔案

的權重是倉庫>全局>系統。Git會使用這一系列的配置檔案來存儲你定義的偏好,它首先會查找/etc/gitconfig檔案(系統級),該

檔案含有對系統上所有使用者及他們所擁有的倉庫都生效的配置值。接下來Git會查找每個使用者的~/.gitconfig檔案(全局級)。最後

Git會查找由使用者定義的各個庫中Git目錄下的配置檔案.git/config(倉庫級),該檔案中的值隻對目前所屬倉庫有效。以上闡述的三

層配置從一般到特殊層層推進,如果定義的值有沖突,以後面層中定義的為準,例如:.git/config和/etc/gitconfig的較量中,

.git/config取得了勝利。雖然你也可以直接手動編輯這些配置檔案,但是運作git config指令将會來得簡單些。下面我們就來看看如

何利用git config指令來編輯配置各個級别的檔案。

   3. 用git config指令檢視配置檔案

指令參數 –list, 簡寫 -l

格式:git config [–local|–global|–system] -l

檢視倉庫級的config,即.git/.config,指令:git config –local -l

檢視全局級的config,即C:\Users\zuoyu.ht\.gitconfig,指令:git config –global -l

檢視系統級的config,即D:\Program Files\Git\etc\gitconfig,指令:git config –system -l

檢視目前生效的配置,指令:git config -l,這個時候會顯示最終三個配置檔案計算後的配置資訊,如下圖:

   4. 使用git config指令編輯配置檔案

編輯的英文單詞是什麼,沒錯,edit

指令參數 –edit, 簡寫 -e

格式:git config [–local|–global|–system] -e

檢視倉庫級的config,即.git/.config,指令:git config –local -e,與–list參數不同的是,git config -e預設是編輯倉庫級的配置檔案。

檢視全局級的config,即C:\Users\zuoyu.ht\.gitconfig,指令:git config –global -e

檢視系統級的config,即D:\Program Files\Git\etc\gitconfig,指令:git config –system -e

   執行這個指令的時候,git會用配置檔案中設定的編輯器打開配置檔案。

     5. 增加一個配置項

參數 –add

格式: git config [–local|–global|–system] –add section.key value(預設是添加在local配置中)

注意add後面的section,key,value一項都不能少,否則添加失敗。比如我們執行:git config –add cat.name tom

然後檢視local中的配置:

注意增加一項配置而不指派 git config –add cat.age,或者單單增加一個section,git config –add cat1,不會成功。

6.擷取一個配置項

有時候,我們并不需要檢視所有配置的值,而是檢視某個配置項的值,怎麼做呢?

指令參數 –get

格式:git config [–local|–global|–system] –get section.key(預設是擷取local配置中内容)

我們先往global配置中寫入一個cat.name=Tomcat的配置項,再使用git config –get cat.name看看得到的是什麼

結果就是local中的cat.name=Tom,是以git config –get section.key 等價于git config –local –get section.key

如果擷取一個section不存在的key值,不會傳回任何值

如果擷取一個不存在的section的key值,則會報錯

 7.删除一個配置項

指令參數 –unset

格式:git config [–local|–global|–system] –unset section.key

相信有了前兩個指令的使用基礎,大家舉一反三就知道改怎麼用了,來,我們試試删除local配置中的cat.name