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