首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows特定的Git配置设置;它们在哪里设置?

Windows特定的Git配置设置;它们在哪里设置?
EN

Stack Overflow用户
提问于 2015-09-29 15:14:04
回答 3查看 15.7K关注 0票数 30

我已经阅读了Git文档和我的Git配置中的设置来自哪里?,但是我仍然无法理解我的一些设置。

我在Windows10的Git2.5.3上。git config -l的输出如下

代码语言:javascript
复制
λ 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

令人烦恼的是,前十二种设置我在任何地方都找不到。

代码语言:javascript
复制
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

此外,当我试图取消前12个设置中的一个设置时,它没有任何效果:

代码语言:javascript
复制
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个设置是硬编码的还是特定于平台的?我怎么才能控制他们?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-29 16:28:21

正如此承诺解释的那样,他们只为--system添加了另一个配置位置,甚至在--system之前就已经应用了

文件/etc/gitconfig可用于存储系统范围内的默认配置.在Windows上,配置也可以存储在C:\ProgramData\Git\config中;基于libgit2 2的软件也将使用该文件。 ..。 在Windows上,由于没有中央/etc/目录,还有另一个配置文件,用于包含计算机上所有与Git相关的软件的设置。因此,这个配置文件的优先级甚至低于$(prefix)/etc/gitconfig文件。

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

通过提交,我可以看到git config --system --list应该已经向您展示了这些设置,但是似乎C:\Program Files\Git\mingw64/etc/gitconfig文件的缺失中止了操作,这可能是一个错误。

票数 43
EN

Stack Overflow用户

发布于 2017-03-21 17:40:45

在我的git版本中,list命令上有一个--显示原点的开关,它给出了应用设置的位置。我同意没有提供开关来访问ProgramData中的windows配置位置,这让人感到困惑。

代码语言:javascript
复制
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  user.email=karl.horton@yahoo.com
file:C:/Users/karlb/.gitconfig  user.name=Karl Horton
票数 25
EN

Stack Overflow用户

发布于 2019-01-30 16:22:27

直到关于寡妇的Git的警告。我有git version 2.17.1.windows.2

我尝试设置一个全局core.attributesfile来覆盖*.sh文件的行尾属性(我使用WSL ),而当当前版本试图运行带有DOS (CRLF)行尾的shell脚本时,它会变得非常不高兴。对于Linux端的Git,~\.gitattributes中的以下行解决了这个问题:

代码语言:javascript
复制
*.sln text eol=crlf
*.bat text eol=crlf
*.sh  text eol=cr

但是使用Windows端的Git (例如通过Sourcetree GUI),对于一些存储库,我仍然在*.sh文件中获得CRLF。

我发现在这些存储库中,core.autocrlf=true。将其设置为input解决了这个问题,Git现在尊重全局gitattributes

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32847697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档