2015-09-29 19 views
13

私はGitのドキュメントとWhere do the settings in my Git configuration come from?を読んでいますが、私はまだ自分の設定の一部を理解できません。私は、Windows 10のGit 2.5.3によWindows固有のGit構成設定。彼らはどこに設定されていますか?

はここgit config -lの出力です:

λ git config -l 
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=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt 
sendemail.smtpserver=/bin/msmtp.exe 
diff.astextplain.textconv=astextplain 
rebase.autosquash=true 
user.name=Ben Collins 
user.email=#redacted# 
alias.sm=submodule 
alias.br=branch 
alias.co=checkout 
alias.st=status 
alias.rebuild=!git rm --cached -r . && git reset --hard 
core.excludesfile=C:\Users\Benjamin\Documents\gitignore_global.txt 
core.editor=c:/Users/Benjamin/AppData/Local/atom/bin/atom.cmd 
core.attributesfile=C:\Users\Benjamin\.gitattributes 
push.default=simple 
merge.tool=p4merge 
mergetool.p4merge.cmd=p4merge.exe "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe 
gui.encoding=utf-8 
diff.guitool=p4merge 
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe 
difftool.p4merge.cmd=p4merge.exe "$LOCAL" "$REMOTE" 
mergetool.keepbackup=false 
rerere.enabled=true 
credential.helper=!'C:\Users\Benjamin\AppData\Roaming\GitCredStore\git-credential-winstore.exe' 
filter.lfs.clean=git lfs clean %f 
filter.lfs.smudge=git lfs smudge %f 
filter.lfs.required=true 
color.diff.whitespace=red reverse 

面倒何最初の12点の設定は、私がどこでもを見つけることができないということです。私は最初の12点のいずれかの設定の設定を解除しようとすると、

C:\Program Files\Git 
λ git config --system --list 
fatal: unable to read config file 'C:\Program Files\Git\mingw64/etc/gitconfig': No such file or directory 
C:\Program Files\Git 
λ git config --global --list 
user.name=Ben Collins 
user.email=#redacted# 
alias.sm=submodule 
alias.br=branch 
alias.co=checkout 
alias.st=status 
alias.rebuild=!git rm --cached -r . && git reset --hard 
core.excludesfile=C:\Users\Benjamin\Documents\gitignore_global.txt 
core.editor=c:/Users/Benjamin/AppData/Local/atom/bin/atom.cmd 
core.attributesfile=C:\Users\Benjamin\.gitattributes 
push.default=simple 
merge.tool=p4merge 
mergetool.p4merge.cmd=p4merge.exe "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe 
gui.encoding=utf-8 
diff.guitool=p4merge 
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe 
difftool.p4merge.cmd=p4merge.exe "$LOCAL" "$REMOTE" 
mergetool.keepbackup=false 
rerere.enabled=true 
credential.helper=!'C:\Users\Benjamin\AppData\Roaming\GitCredStore\git-credential-winstore.exe' 
filter.lfs.clean=git lfs clean %f 
filter.lfs.smudge=git lfs smudge %f 
filter.lfs.required=true 
color.diff.whitespace=red reverse 

はまた、それは何の効果もありません:

C:\Users\Benjamin\Projects\blah [master +0 ~1 -0] 
λ git config --unset core.autocrlf 
C:\Users\Benjamin\Projects\blah [master +0 ~1 -0] 
λ git config core.autocrlf 
true 
C:\Users\Benjamin\Projects\Saddleback\cm-core [master +0 ~1 -0] 
λ git config --unset-all core.autocrlf 
C:\Users\Benjamin\Projects\Saddleback\cm-core [master +0 ~1 -0] 
λ git config core.autocrlf 
true 

これらの最初の12点の設定が何らかの形でハードコードまたはプラットフォーム固有していますか?どのように私はそれらのコントロールを取得できますか?

+0

このヘルプをご覧ください:http://stackoverflow.com/q/2114111/1190388? – hjpotter92

+0

@ hjpotter92、いいえ - これは($ HOME/.gitconfig内の)グローバル設定に関するものではありません。私はそれについてかなり良い扱いをしている。 configの設定は基本的には順番に読み込まれるように見えるので、グローバル設定より前に何かがロードされていますが、システム設定は存在しません。それと私がその設定を解除できないという事実は謎です。 –

+2

これは、何かに設定する必要がある設定のGitのデフォルトです。設定を解除する代わりに、他の設定にすることができますか? 'git config core.autocrlf false'?それがうまくいけば 'core.autocrlf'の設定を解除して、' true'に戻りますか? – Chris

答えて

22

this commitが説明するように、彼らはWindowsのみのための別の設定の場所を追加しました、それはさえ--system前に適用されます。

ファイル/etc/gitconfigは、システム全体のデフォルト 設定を保存するために使用することができます。 Windowsでは、設定は C:\ProgramData\Git\configに保存することもできます。このファイルは、 libgit2ベースのソフトウェアでも使用されます。

... Windows上で

、何の中央/etc/ディレクトリが存在しないとして、 は、マシン上で実行されているすべて Gitリポジトリ関連のソフトウェアの設定を含むように意図され、別の設定ファイルには、まだあります。その結果、この設定ファイル は、ファイル$(prefix)/etc/gitconfig よりも優先順位が低くなります。

だから、これらの謎の設定をC:\ProgramData\Git\configに見つけることができると思います。それから、


は、私は git config --system --listはあなたにこれらの設定を示すべきだったことがわかりますコミットが、 C:\Program Files\Git\mingw64/etc/gitconfigファイルが存在しない場合は、おそらくバグで操作を、中止されているようです。

+0

素晴らしい、ありがとう! –

+0

この回答には、それほど多くのアップフォースがありません。 PS。私はシステムのgitconfigファイルを持っていますが、gitの設定で何も表示されません--system --list以外のものは何ですか?(よく隠されたprogramdataファイルは表示されません) –

5

私のバージョンのgitには、設定が適用された場所を示すリストコマンドでスイッチが表示されます。これは、です。私は、ProgramData内のウィンドウ構成の場所にアクセスするためのスイッチが用意されていないというのは混乱していることに同意します。

C:\Users\karlb>git --version 
git version 2.11.0.windows.3 

C:\Users\karlb>git config --list --show-origin 
file:"C:\\ProgramData/Git/config"  core.symlinks=false 
file:"C:\\ProgramData/Git/config"  core.autocrlf=true 
file:"C:\\ProgramData/Git/config"  core.fscache=true 
file:"C:\\ProgramData/Git/config"  color.diff=auto 
file:"C:\\ProgramData/Git/config"  color.status=auto 
file:"C:\\ProgramData/Git/config"  color.branch=auto 
file:"C:\\ProgramData/Git/config"  color.interactive=true 
file:"C:\\ProgramData/Git/config"  help.format=html 
file:"C:\\ProgramData/Git/config"  http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt 
file:"C:\\ProgramData/Git/config"  diff.astextplain.textconv=astextplain 
file:"C:\\ProgramData/Git/config"  rebase.autosquash=true 
file:"C:\\Program Files\\Git\\mingw64/etc/gitconfig" credential.helper=manager 
file:"C:\\Program Files\\Git\\mingw64/etc/gitconfig" difftool.usebuiltin=true 
file:"C:\\Program Files\\Git\\mingw64/etc/gitconfig" alias.lol=log --oneline --graph 
file:"C:\\Program Files\\Git\\mingw64/etc/gitconfig" alias.last=log -1 HEAD 
file:C:/Users/karlb/.gitconfig [email protected] 
file:C:/Users/karlb/.gitconfig user.name=Karl Horton 
関連する問題