我注意到我有两个列表core.autocrlf
当我跑步时git config -l
$ git config -l
core.symlinks=false
core.autocrlf=false
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=name
[email protected] /cdn-cgi/l/email-protection
core.autocrlf=true
最后三个(从 user.name 开始)是我的中唯一的C:\users\username\.gitconfig
文件。其他所有的都从哪里来?为什么 core.autocrlf 列出两次?
这是使用 MSysGit 1.8.3,我还安装了 Sourcetree (Windows 7)。在 Sourcetree 中,我取消选中“允许 Sourcetree 修改全局 Git 配置文件”
Git 检查配置文件的四个位置:
- 您机器的系统
.gitconfig
file.
- 您的用户
.gitconfig
文件位于~/.gitconfig
.
- 第二个用户特定的配置文件位于
$XDG_CONFIG_HOME/git/config
or $HOME/.config/git/config
.
- 本地存储库的配置文件
.git/config
.
设置按以下顺序级联,每个文件都会添加或覆盖其上方文件中定义的设置。
- 系统配置。
- 用户配置。
- 存储库特定的配置。
您可以使用以下命令查看每个文件的定义内容:
# System, applies to entire machine and all users
$ git config --system --list
$ git config --system --edit
# User defined
$ git config --global --list
$ git config --global --edit
您可以通过打开文件来查看特定于存储库的文件所定义的内容.git/config
对于该存储库。
如果您在 Windows 上使用 MSysGit,您可能会找到您的用户~/.gitconfig
文件在任何地方%homepath%
指向如果您使用echo %homepath%
从 Windows 命令提示符。
来自的文档git config http://jk.gs/git-config.html#FILES:
如果没有明确设置--file
,有四个文件,其中git config
将搜索配置选项:
第二个用户特定的配置文件。如果$XDG_CONFIG_HOME
是
未设置或为空,$HOME/.config/git/config
将会被使用。任何
该文件中设置的单值变量将被覆盖
无论里面有什么~/.gitconfig
。最好不要创建这个
文件(如果您有时使用旧版本的 Git),作为对此的支持
文件是最近添加的。
用户特定的配置文件。也称为“全局”配置
文件。
-
$GIT_DIR/config
存储库特定的配置文件。
如果没有给出更多选项,所有阅读选项将读取所有
这些可用的文件。如果全局或系统范围
配置文件不可用,它们将被忽略。如果
存储库配置文件不可用或不可读,git config
将退出并显示非零错误代码。然而,在这两种情况下
会发出错误消息。
按照上面给出的顺序读取文件,并找到最后一个值
优先于之前读取的值。当有多个值时
那么将使用所有文件中键的所有值。
所有写入选项将默认写入特定于存储库的
配置文件。请注意,这也会影响诸如--replace-all
and --unset
. git config
只会改变
一次一个文件。
您可以通过命令行选项或通过
环境变量。这--global
和--system
选项将
分别将使用的文件限制为全局文件或系统范围文件。
这GIT_CONFIG
环境变量有类似的效果,但是你
可以指定任何你想要的文件名。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)