2009-12-10 60 views
3

我正在設置My First Git Repo,並且正在運行;提交時如何評估Git配置?

git config --list 

我注意到我有多個條目的某些配置值;

core.autocrlf=input 
[...] 
core.autocrlf=false 

我猜這些值,因爲它們出現在不同的配置文件(系統,全局文件)的多於一個的彎了腰。我的問題是,這些值中的哪一個優先?配置文件是逐行讀取的,最後一個條目是在提交期間使用的嗎?

回答

5

從該MYYN借來的,這些都是三個地方找到配置文件:

  • $ GIT_DIR /配置
  • 〜/的.gitconfig(--global)
  • $(前綴)/ etc/gitconfig

好吧,想象一下,你在全球範圍內設置你的電子郵件爲[email protected]。現在,我們做一個新的回購協議:

$ cd /tmp 
$ mkdir try && cd try 
$ git init 
$ git config user.email [email protected] 
$ touch hi 
$ git -add . 
$ git commit -m 'bla' 

然後,您user.email將被設置爲兩個值:

$ git config --list | grep niko.schwarz 
[email protected] 
[email protected] 

但是,如果你看一下日誌,電子郵件地址將被設置爲具體到回購:

$ git log | grep niko.schwarz 
Author: Niko Schwarz <[email protected]> 
    Signed-off-by: Niko Schwarz <[email protected]> 

因此,本地節拍全球,這是值列出的順序。現在,隨着信念的飛躍,我確實假設git config --list以一種使後者優先的順序顯示事物。

+1

感謝您的回答,但不能讓我意識到我可能已經完成這個簡單的測試自己;恥辱! ;) – Mathew 2009-12-10 15:36:46

+0

非常歡迎:) – nes1983 2009-12-10 15:45:56

4

如果不--file明確設置,有三個文件,其中git-config將配置選項進行搜索:

  • $GIT_DIR/config

  • ~/.gitconfig--global

  • $(prefix)/etc/gitconfig

如果沒有其他選項,所有閱讀選項將讀取所有這些可用的文件。如果全局或系統範圍的配置文件不可用,它們將被忽略。

.git/config文件中的每個儲存庫用於存儲配置該存儲庫中,並且$HOME/.gitconfig用於存儲每個用戶的配置作爲用於.git/config文件後備值。文件/etc/gitconfig可用於存儲系統範圍的默認配置。

優先級應該從最一般的到存儲庫特定的條目。

或者更上口(從借來的Niko):local beats global

+0

嗨,我喜歡被引用:) +1引用 – nes1983 2009-12-10 15:41:47

+0

其正確,簡短和難忘.. – miku 2009-12-10 15:52:53