Tôi đã đọc tài liệu Git và Where do the settings in my Git configuration come from? nhưng tôi vẫn không thể hiểu được một số cài đặt của mình.Cài đặt cấu hình Git dành riêng cho Windows; chúng được đặt ở đâu?
Tôi đang trên Git 2.5.3 trên Windows 10. Dưới đây là kết quả của 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ó gì khó chịu là mười hai cài đặt đầu tiên tôi không thể tìm thấy bất cứ nơi nào .
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
Ngoài ra, khi tôi cố gắng để bỏ đặt một trong mười hai cài đặt đầu tiên, nó không có hiệu lực:
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
có mười hai cài đặt đầu tiên hardcoded hoặc nền tảng cụ thể bằng cách nào đó? Làm cách nào để kiểm soát chúng?
Trợ giúp này: http://stackoverflow.com/q/2114111/1190388? – hjpotter92
@ hjpotter92, không - đây không phải là về cấu hình chung (trong $ HOME/.gitconfig). Tôi đã có một xử lý khá tốt về điều đó. Dường như cài đặt cấu hình cơ bản được tải theo thứ tự, vì vậy có gì đó đang được tải _before_ cấu hình chung, nhưng cấu hình hệ thống không tồn tại. Điều đó và thực tế là tôi không thể bỏ đặt những thiết lập đó là bí ẩn. –
Đó có thể là cài đặt mặc định của Git cho các cài đặt phải được đặt thành thứ gì đó. Thay vì hủy đặt chúng, bạn có thể thử đặt chúng thành thứ gì khác không, ví dụ: 'git config core.autocrlf false'? Nếu nó hoạt động, và sau đó bạn bỏ đặt 'core.autocrlf', nó có quay lại' true' không? – Chris