特定于Windows的Git配置设置;他们在哪里设置? [英] Windows-specific Git configuration settings; where are they set?

查看:783
本文介绍了特定于Windows的Git配置设置;他们在哪里设置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已阅读Git文档和 Where做我的Git配置中的设置来自?,但我仍然无法理解我的一些设置。



我在Windows 10上使用Git 2.5.3。下面是 git config -l <​​/ code>的输出:

 λ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 =子模块
alias.br =分支
alias.co =结帐
alias.st =状态
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 =简单
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

ersome是前十二种设置,我找不到

  C:\ Program Files \Git 
λgit config --system --list
致命的:无法读取配置文件'C:\ Program Files \Git\mingw64 / etc / gitconfig':没有这样的文件或目录
C:\ Program Files \Git
λgit config --global --list
user.name = Ben Collins
user.email =#redacted#
alias.sm =子模块
alias.br =分支
alias.co =结帐
alias.st =状态
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 =简单
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个设置中的一个设置,但它不起作用:

  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个设置是硬编码还是特定于平台不知何故?如何获得对它们的控制?

此提交解释说,他们已经为Windows添加了另一个配置位置,甚至在 - system :
$ b


文件 / etc / gitconfig 可用于存储系统全范围默认
配置。在Windows上,配置也可以存储在
C:\ Program Data \Git\config 中;这个文件也将被
libgit2软件使用。



...



On Windows,因为没有中央 / etc / 目录,所以还有
另一个配置文件,用于包含全部的设置
机器上运行的与Git相关的软件。因此,此配置
文件的优先级低于 $(前缀)/ etc / gitconfig
文件的优先级。


所以我相信你可以在 C:\ Program Data \Git\config 中找到这些神秘的设置。 。




从这个提交中我可以看到 git config --system --list code>应该向您显示了这些设置,但似乎没有 C:\ Program Files \Git\mingw64 / etc / gitconfig 文件中止了操作,这可能是一个错误。


I've read the Git documentation and Where do the settings in my Git configuration come from? and yet I still can't make sense of some of my settings.

I'm on Git 2.5.3 on Windows 10. Here's the output of 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

What's bothersome is that the first twelve settings I cannot find anywhere.

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

Also, when I try to unset one of the first twelve settings, it has no effect:

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

Are these first twelve settings hardcoded or platform-specific somehow? How do I get control of them?

解决方案

As this commit explains, they've added another config location only for Windows, that is applied even before the --system:

The file /etc/gitconfig can be used to store a system-wide default configuration. On Windows, configuration can also be stored in C:\ProgramData\Git\config; This file will be used also by libgit2-based software.

...

On Windows, as there is no central /etc/ directory, there is yet another config file, intended to contain settings for all Git-related software running on the machine. Consequently, this config file takes an even lower precedence than the $(prefix)/etc/gitconfig file.

So I believe you can find those mystery settings in C:\ProgramData\Git\config.


From that commit I can see that git config --system --list should've shown you those settings, but it seems that the absence of C:\Program Files\Git\mingw64/etc/gitconfig file aborted the operation, which is probably a bug.

这篇关于特定于Windows的Git配置设置;他们在哪里设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆