2015-09-29 29 views
13

मैंने गिट प्रलेखन और Where do the settings in my Git configuration come from? पढ़ा है और फिर भी मैं अभी भी अपनी कुछ सेटिंग्स को समझ नहीं सकता हूं।विंडोज-विशिष्ट गिट कॉन्फ़िगरेशन सेटिंग्स; वे कहाँ सेट हैं?

मैं Windows 10 पर Git 2.5.3 पर हूँ यहाँ 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 

क्या कष्टप्रद है कि पहले बारह सेटिंग्स मैं कहीं भी नहीं मिल सकता है।

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 

इन पहले बारह सेटिंग्स hardcoded या प्लेटफ़ॉर्म-विशिष्ट रहे हैं किसी भी तरह? मैं उन पर नियंत्रण कैसे प्राप्त करूं?

+0

क्या यह सहायता मिली: http://stackoverflow.com/q/2114111/1190388? – hjpotter92

+0

@ hjpotter92, नहीं - यह वैश्विक कॉन्फ़िगरेशन ($ HOME/.gitconfig में) के बारे में नहीं है। मुझे उस पर एक बहुत अच्छा संभाल मिला है। ऐसा लगता है कि कॉन्फ़िगरेशन सेटिंग्स मूल रूप से क्रम में लोड हो जाती हैं, इसलिए कुछ वैश्विक कॉन्फ़िगरेशन _before_ लोड हो रहा है, लेकिन सिस्टम कॉन्फ़िगरेशन मौजूद नहीं है। वह और तथ्य यह है कि मैं उन सेटिंग्स को अनसेट नहीं कर सकता रहस्य है। –

+2

वे उन सेटिंग्स के लिए गिट के डिफ़ॉल्ट हो सकते हैं जिन्हें किसी चीज़ पर सेट करना होगा। उन्हें अनसेट करने के बजाय, क्या आप उन्हें किसी और चीज़ पर सेट करने का प्रयास कर सकते हैं, उदा। 'git config core.autocrlf false'? यदि यह काम करता है, और फिर आप 'core.autocrlf' को अनसेट करते हैं, तो क्या यह वापस' सत्य 'पर जाता है? – Chris

उत्तर

22

this commit के रूप में बताते हैं, वे केवल विंडोज के लिए एक और config स्थान जोड़ देंगे तो वह भी --system से पहले लागू किया जाता है:

फ़ाइल /etc/gitconfig सिस्टम-वाइड डिफ़ॉल्ट विन्यास स्टोर करने के लिए इस्तेमाल किया जा सकता। विंडोज़ पर, विन्यास 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

इस उत्तर के पास उतना ही करीब नहीं है जितना कि यह कितना अपरिवर्तनीय है :) पीएस। मेरे पास सिस्टम gitconfig फ़ाइल है लेकिन मुझे गिट कॉन्फ़िगरेशन - सिस्टम सिस्टम पर कुछ और नहीं दिख रहा है - उस फ़ाइल में जो कुछ भी है (मुझे अच्छी तरह से छिपी हुई प्रोग्रामडेटा फ़ाइल नहीं दिखाई देती है) –

5

गिट के मेरे संस्करण में - शो-उत्पत्ति सूची कमांड पर स्विच करें जो सेटिंग को कहां से लागू किया गया था। मैं मानता हूं कि यह भ्रमित है कि प्रोग्रामडेटा के अंदर विंडोज कॉन्फ़िगरेशन स्थान तक पहुंचने के लिए कोई प्रदान नहीं किया गया स्विच है।

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 
संबंधित मुद्दे