如何显示我的全局Git配置?


1075

我想显示所有已配置的Git部分。

我只找到了git config --get core.editor,并且我想输出全局配置的所有内容,而不仅仅是配置的默认编辑器。


3
看.gitconfig有什么问题?
2012年

1
请注意,您很快(2015年第3季度/第4季度)将使用git 2.6选项--name-only,仅列出配置键,而不列出其值。请参阅下面的答案
VonC

41
$ git config --list 检查您的设置
TarranJones

5
应该git config --global --list这里
prosti

Answers:


1719

您可以使用:

git config --list

或查看您的~/.gitconfig文件。本地配置将在您存储库的.git/config文件中。

采用:

git config --list --show-origin

查看该设置的定义位置(全局,用户,存储库等)


24
谢谢,我赞成你们两个。我想知道的git config --list命令,因为我可以看到在仓库的有效配置,我可以区别本地,全局和系统配置与适当的参数(--global--local--system)。我会尽快接受您的回答,因为您快了几秒钟:)
wullxz 2012年

2
注意,git配置有很多潜在的来源。查看文件仅提供一部分。@linquize的答案实际上是正确的。
vonbrand 2014年

2
@vonbrand:--list等效于-l。
Cameron Skinner 2014年

9
-l当您成为高级用户并经常使用该功能时,速记(如)会派上用场,从而实际上从键入较少的字符中受益。我发现更容易找到并记住长--list选项。对于不太明显的速记,我经常必须检查它们代表什么,所以我更喜欢长名称。当您不必真正键入所有字符,但仍可以看到整个选项名称时,通过命令完成,它们甚至变得更加容易。
2014年

1
如果git config --list什么都不打印怎么办?
Matej J

247

最短的,

git config -l

显示以下所有继承的值:系统,全局和本地


13
这与git config --list有所不同吗,还是只是一种较短的编写方式?
Magnilex

8
@Magnilex这只是一种较短的编写方式
LemenDrop 2015年

3
配置文件可能不会始终显示所有继承的配置,但git config -l会显示所有内容。救了我,因为git for Windows autocrlf在安装时设置了,并且它不在我可以找到的任何配置文件中。
日内瓦

是的,还有C:\ ProgramData \ Git \ config文件-我想这是全局或系统git配置文件
Alex

129

如何编辑全局 Git配置?

简短答案: git config --edit --global


要了解Git配置,您应该知道:

Git配置变量可以存储在三个不同的级别。每个级别都会覆盖前一个级别的值。

1.系统级别(适用于系统上的每个用户及其所有存储库)

  • 查看git config --list --system(可能需要sudo
  • 设置, git config --system color.ui true
  • 编辑系统配置文件, git config --edit --system

2.全局级别(特定于您,用户个人的值)。

  • 查看, git config --list --global
  • 设置, git config --global user.name xyz
  • 编辑全局配置文件, git config --edit --global

3.存储库级别(特定于该单个存储库)

  • 查看, git config --list --local
  • 设置,git config --local core.ignorecase true--local可选)
  • 编辑存储库配置文件,git config --edit --local--local可选)

如何查看所有设置?

  • 运行git config --list,显示systemglobal和(如果在存储库中)本地配置
  • 运行git config --list --show-origin,还显示每个配置项的原始文件

如何阅读一种特定的配置?

  • 例如,运行git config user.name来获取user.name
  • 你也可以指定选项--system--global--local在特定级别读取该值。

参考:1.6入门-首次Git设置


1
git config --list显示所有全局,系统和本地?我需要肯定:)
Adi Prasetyo

2
只需添加配置文件的位置即可:系统:C:\ ProgramData \ Git \ config(在Windows中)。全局:C:\ Users \ user \ .gitconfig(Windows)〜/ .gitconfig(Linux)本地:project-repo / .git / config
Alex

@AdiPrasetyo是的。您可以运行git config --list --show-origin以找出每个配置项的来源。
kgf3JfUtW

109
git config --list

是一种方法。我通常只是开放.gitconfig


2
您打算使用~/.gitconfig还是“文件”部分提到的其他文件之一git help config
chwarr '16

1
@chwarr-对不起,我不了解。我“打算”吗?
Rook

1
我认为您的意思是说“ ~/.gitconfig尽管我通常只是打开。”,因为.gitconfig无论您身在何处,git都不会在当前目录中查找。(.gitconfig~/.gitconfig命名不同的文件[ 通常 ]。)中提到的其他文件git help config具有不同的文件名,因此假设。
chwarr

32

您也可以调用git config -e直接在编辑器中打开配置文件。Git配置文件比-l输出更具可读性,因此我总是倾向于使用该-e标志。

总结一下:

git config -l  # List Git configuration settings (same as --list)
git config -e  # Opens Git configuration in the default editor (same as --edit)
  • 如果没有参数,它将与local交互.git/config
  • 随着--global与之交互~/.gitconfig
  • 并与之--system互动$(prefix)/etc/gitconfig

(我真的找不到真正的$(prefix)含义,但似乎默认为$HOME。)



11

Git 2.6(Sept / Oct 2015)将添加选项--name-only以简化a的输出git config -l

参见Jeff King(提交的commit a92330dcommit f225987commit 9f1429d(2015年8月20日。 见提交ebca2d4(二〇一五年八月二十○日),以及提交905f203提交578625f(2015年8月10日)由SZEDER伽柏((由Junio C Hamano合并--commit fc9dfda中,2015年8月31日)peff
szeder
gitster

config:添加' --name-only'选项以仅列出变量名称

git config”只能显示值或名称-值对,因此,如果shell脚本需要设置配置变量的名称,则它必须运行“ git config --list”或“ --get-regexp”并解析输出以将配置变量名称与其值分开。
但是,这样的解析无法处理多行值。

尽管' git config'可以为换行安全的解析生成以null结尾的输出,但是在这种情况下这没有用,因为shell无法处理null字符。

甚至我们自己的bash完成脚本也遭受这些问题的困扰。

通过引入“ --name-only”选项来修改“ --list”和“ --get-regexp” 的输出以仅列出配置变量的名称,从而帮助完成脚本和一般的shell脚本,从而不必执行容易出错的后期处理来将变量名称与其值分开。


10

一件重要的事git config

git config--local--global而且--system水平和相应的文件。

所以,你可以使用git config --localgit config --globalgit config --system

默认情况下,如果未传递任何配置选项,git config将写入本地级别。本地配置值存储在一个文件中,该文件可以在存储库的.git目录中找到:.git/config

全局级别的配置是特定于用户的,这意味着它将应用于操作系统用户。全局配置值存储在用户主目录中的文件中。~/.gitconfig在Unix系统和C:\Users\<username>\.gitconfigWindows上。

系统级配置应用于整个计算机。这涵盖了操作系统和所有存储库上的所有用户。系统级配置文件位于gitconfig系统根路径之外的文件中。$(prefix)/ etc / gitconfig在Linux系统上。在Windows上,可以在中找到该文件C:\ProgramData\Git\config

因此,您的选择是找到该全局.gitconfig文件并进行编辑。

或者您可以使用git config --global --list

这正是您需要的线。

在此处输入图片说明


7

如果您只想列出Git配置的一部分,例如aliascoreremote等,则可以通过grep传递结果。就像是:

git config --global -l | grep core


3

要查找所有配置,只需编写以下命令:

git config --list

我在本地运行此命令。

Md Masud@DESKTOP-3HTSDV8 MINGW64 ~
$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
user.email=infomasud@gmail.com
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f

git config命令是一种便捷功能,用于在全局或本地项目级别上设置Git配置值。这些配置级别对应于.gitconfig文本文件。在此处了解更多信息: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud

太好了,您可以将其添加到答案中吗?
RamenChef

1

从Git 2.26.0开始,您可以使用以下--show-scope选项:

git config --list --show-scope

输出示例:

system  rebase.autosquash=true
system  credential.helper=helper-selector
global  core.editor='code.cmd' --wait -n
global  merge.tool=kdiff3
local   core.symlinks=false
local   core.ignorecase=true

它可以与

  • --local用于项目配置, --global用于用户配置, --system用于所有用户的配置
  • --show-origin 显示确切的配置文件位置
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.