3 回答

TA貢獻1770條經驗 獲得超3個贊
Git檢查4個位置的配置文件:
您機器的系統
.gitconfig
文件。您的用戶
.gitconfig
文件位于~/.gitconfig
。位于
$XDG_CONFIG_HOME/git/config
或的第二個特定于用戶的配置文件$HOME/.config/git/config
。本地repo的配置文件
.git/config
。
設置按以下順序級聯,每個文件添加或覆蓋其上方文件中定義的設置。
系統配置
用戶配置。
特定于回購的配置。
您可以使用以下命令查看每個文件的定義:
# System, applies to entire machine and all users$ git config --system --list $ git config --system --edit# User defined$ git config --global --list $ git config --global --edit
您可以通過打開該repo的文件來查看repo特定文件的定義.git/config
。
如果您在Windows上使用msysgit,則可能會在Windows命令提示符處找到您指向的用戶~/.gitconfig
文件。%homepath%
echo %homepath%
從以下文檔git config
:
如果未明確設置
--file
,則有四個文件git config
將搜索配置選項:
$(prefix)/etc/gitconfig
系統范圍的配置文件。
$XDG_CONFIG_HOME/git/config
第二個特定于用戶的配置文件。如果
$XDG_CONFIG_HOME
未設置或為空,$HOME/.config/git/config
將使用。此文件中設置的任何單值變量都將被其中的任何內容覆蓋~/.gitconfig
。如果您有時使用舊版本的Git,最好不要創建此文件,因為最近添加了對此文件的支持。
~/.gitconfig
用戶特定的配置文件。也稱為“全局”配置文件。
$GIT_DIR/config
存儲庫特定的配置文件。
如果沒有給出進一步的選項,所有閱讀選項將讀取所有可用的文件。如果全局或系統范圍的配置文件不可用,則將忽略它們。如果存儲庫配置文件不可用或不可讀,
git config
則將以非零錯誤代碼退出。但是,在任何情況下都不會發出錯誤消息。按上面給出的順序讀取文件,找到的最后一個值優先于先前讀取的值。當獲取多個值時,將使用來自所有文件的鍵的所有值。
所有寫入選項都將默認寫入特定于存儲庫的配置文件。請注意,這也會影響
--replace-all
和等選項--unset
。git config
只會一次更改一個文件。您可以通過命令行選項或環境變量覆蓋這些規則。在
--global
和--system
選項將限制分別用于全球或全系統文件的文件。該GIT_CONFIG
環境變量有類似的效果,但您可以指定任何你想要的文件名。

TA貢獻1810條經驗 獲得超4個贊
在以前安裝了Git for Windows并隨后卸載之后,我發現在C:\ Users \ All Users \ Git \ config中安裝了一個配置文件,這是一個系統級配置文件,它會持續存在并將影響任何未來的mingw32 git包(就我而言,我正在運行我公司提供的便攜式mingw32 git包)。當我跑
git config --system --edit
它會顯示位于mingw32 / etc / gitconfig的系統配置文件,但仍會加載第一個位置的值。這顯示為在嘗試使用git lfs時配置值發生沖突的警告
WARNING: These git config values clash: git config "http.sslcainfo" = "C:/Users/foo/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt" git config "http.sslcainfo" = "/ssl/certs/ca-bundle.crt"
- 3 回答
- 0 關注
- 1093 瀏覽
添加回答
舉報