git config命令


git config命令用於獲取並設定儲存庫或全域性選項。這些變數可以控制Git的外觀和操作的各個方面。

語法簡介

git config [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]]
git config [<file-option>] [type] --add name value
git config [<file-option>] [type] --replace-all name value [value_regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] --get name [value_regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value_regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
git config [<file-option>] [type] [-z|--null] --get-urlmatch name URL
git config [<file-option>] --unset name [value_regex]
git config [<file-option>] --unset-all name [value_regex]
git config [<file-option>] --rename-section old_name new_name
git config [<file-option>] --remove-section name
git config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
git config [<file-option>] --get-color name [default]
git config [<file-option>] --get-colorbool name [stdout-is-tty]
git config [<file-option>] -e | --edit

描述

可以使用此命令查詢/設定/替換/取消設定選項。該名稱實際上是由點(.)分隔鍵,該值將被跳脫。

可以使用--add選項將多行新增到選項。如果要更新或取消設定多行可能出現的選項,則需要給出POSIX正規表示式value_regex。 只有與正規表示式匹配的現有值已更新或未設定。如果要處理與正規表示式不匹配的行,只需在前面新增一個感嘆號。

型別說明符可以是--int--bool,以使git config確保變數是給定型別,並將該值轉換為規範形式(int是簡單十進位制數,「true」或 「false」 的布林字串表示),或者--path,它進行一些路徑擴充套件。如果沒有型別說明符傳遞,則不會對該值執行檢查或轉換。

讀取時,預設情況下從系統,全域性和儲存庫本地組態檔案讀取這些值,而選項--system--global--local--file <filename>可用於告知命令從只有那個位置設定和讀取。

寫入時,預設情況下將新值寫入儲存庫本地組態檔案,並且可以使用選項--system--global--file <filename>來告訴命令寫入該位置(可以指定為 --local,但這是預設值)。

此錯誤後,此命令將失敗,並顯示非零狀態。 一些退出程式碼是:

  • 部分或鍵無效(ret = 1),
  • 沒有提供部分或名稱(ret = 2),
  • 組態檔案無效(ret = 3),
  • 組態檔案無法寫入(ret = 4),
  • 嘗試取消設定不存在的選項(ret = 5),
  • 嘗試取消設定/設定多個行匹配的選項(ret = 5)或
  • 嘗試使用無效的正規表示式(ret = 6)。

成功後,命令返回退出程式碼是:0

一. 組態檔案的儲存位置

這些變數可以被儲存在三個不同的位置:

  1. /etc/gitconfig 檔案:包含了適用於系統所有使用者和所有庫的值。如果你傳遞引數選項’—system’ 給 git config,它將明確的讀和寫這個檔案。

  2. ~/.gitconfig 檔案 :具體到你的使用者。你可以通過傳遞—global 選項使Git 讀或寫這個特定的檔案。

  3. 位於git目錄的config檔案 (也就是 .git/config) :無論當前在用的庫是什麼,特定指向該單一的庫。每個級別重寫前一個級別的值。因此,在.git/config中的值覆蓋了在/etc/gitconfig中的同一個值。

二.組態使用者名和密碼

當安裝Git後首先要做的事情是設定使用者名稱和e-mail地址。這是非常重要的,因為每次Git提交都會使用該資訊。它被永遠的嵌入到了你的提交中:

$ git config --global user.name "maxsu"
$ git config --global user.email "[email protected]"

重申一遍,只需要做一次這個設定。如果傳遞了 --global 選項,因為Git將總是會使用該資訊來處理在系統中所做的一切操作。如果希望在一個特定的專案中使用不同的名稱或e-mail地址,可以在該專案中執行該命令而不要--global選項。

$ git config  user.name "maxsu"
$ git config user.email "[email protected]"

三.組態編緝器

可以組態預設的文字編輯器,Git在需要你輸入一些訊息時會使用該文字編輯器。預設情況下,Git使用系統的預設編輯器,這通常可能是 vi 或者 vim 。如果想使用一個不同的文字編輯器,例如:Emacs,可以按照如下操作:

$ git config --global core.editor emacs

四.組態比較工具

另外一個你可能需要組態的有用的選項是預設的比較工具它用來解決合併時的衝突。例如,想使用 vimdiff 作為比較工具:

$ git config --global merge.tool vimdiff

Git可以接受 kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, 和 opendiff 作為有效的合併工具。也可以設定一個用戶端的工具;

五.檢查組態

如果想檢查你的設定,可以使用 git config --list 命令來列出Git可以在該處找到的所有的設定:

$ git config --list
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
[email protected]
user.name=minsu
user.author=author-maxsu
core.autocrlf=true
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
gui.wmstate=normal
gui.geometry=799x475+304+80 287 214
user.name=maxsu

可能會看到一個關鍵字出現多次(如這裡的:user.name就有兩個值),這是因為Git從不同的檔案中(例如:/etc/gitconfig以及~/.gitconfig)讀取相同的關鍵字。在這種情況下,對每個唯一的關鍵字,Git使用最後的那個值。
也可以檢視Git認為的一個特定的關鍵字目前的值,使用如下命令 git config {key}:

$  git config user.name
maxsu

Administrator@MY-PC /C/Users/Administrator/Desktop (master)
$  git config user.email
[email protected]

新增/刪除組態項

新增組態項

引數

  • -–add

格式: git config [–local|–global|–system] –add section.key value(預設是新增在 local 組態中)

注意add後面的 section, key, value 一項都不能少,否則新增失敗。比如執行:

$ git config -–add site.name yiibai

刪除組態項
命令引數

  • -–unset
    格式:git config [–local|–global|–system] –unset section.key
    相信有了前兩個命令的使用基礎,大家舉一反三就知道改怎麼用了,現在試試刪除 local 組態中的site.name組態值 -
$ git config --local -–unset site.name

六.獲取幫助

如果在使用Git時需要幫助,有三種方法可以獲得任何git命令的手冊頁(manpage)幫助資訊:

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

例如,您想要看看有關 git config 如何使用,那麼可以使用以下命令 -

$ git help config