【问题标题】:How do I show my global Git configuration?如何显示我的全局 Git 配置?
【发布时间】:2012-08-28 13:23:15
【问题描述】:

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

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

【问题讨论】:

  • 查看.gitconfig有什么问题?
  • 请注意,您将很快(2015 年第三季度/第四季度)使用 git 2.6 选项 --name-only,仅列出配置键,而不列出它们的值。见my answer below
  • $ git config --listChecking-Your-Settings
  • 它应该是git config --global --list,正如在here中更深入地解释的那样

标签: git


【解决方案1】:

你可以使用:

git config --list

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

用途:

git config --list --show-origin

查看该设置的定义位置(全局、用户、repo 等...)

【讨论】:

  • 谢谢,我赞成你们俩。我想知道git config --list 命令,因为我可以查看存储库中的有效配置,并且可以使用适当的参数(--global--local--system)来区分本地、全局和系统配置。我会尽快接受你的回答,因为你快了几秒钟:)
  • 小心,有很多潜在的 git 配置来源。查看文件只给出了一部分。 @linquize 的回答其实是正确的。
  • @vonbrand: --list 等价于 -l。
  • 当您成为高级用户并经常使用该功能时,速记(如-l)会派上用场,实际上可以从输入更少的字符中获益。我发现更容易找到并记住长 --list 选项。对于不太明显的速记,我经常需要检查它们代表什么,所以我更喜欢长名称。当您不必键入所有字符但仍能看到整个选项名称时,它们会更容易,通过命令完成。
  • 如果git config --list 什么都不打印怎么办?
【解决方案2】:
git config --list

是一种方法。不过我通常只是打开.gitconfig

【讨论】:

  • 您是否打算使用~/.gitconfiggit help config 的文件部分中提到的其他文件之一?
  • @chwarr - 对不起,我不明白。我“有意”吗?
  • 我想你的意思是说“我通常只是打开~/.gitconfig。”,因为无论你在哪里,git 都不会在当前目录中寻找.gitconfig。 (.gitconfig~/.gitconfig 命名不同的文件 [通常]。)git help config 中提到的其他文件具有不同的文件名,因此假设。
【解决方案3】:

最短的,

git config -l

显示所有继承自:系统、全局和本地的值

【讨论】:

  • 这与 git config --list 有什么不同,还是只是更短的写法?
  • @Magnilex 这只是一种更短的编写方式
  • 配置文件可能并不总是显示所有继承的配置,但git config -l 会显示所有内容。救了我,因为 git for windows 在安装时设置了autocrlf,而且它不在我能找到的任何配置文件中。
  • 是的,还有 C:\ProgramData\Git\config 文件——我猜这是全局或系统 git 配置文件
【解决方案4】:

您也可以使用cat ~/.gitconfig

【讨论】:

    【解决方案5】:

    Git 2.6(2015 年 9 月/10 月)将添加选项 --name-only 以简化 git config -l 的输出:

    参见commit a92330dcommit f225987commit 9f1429d(2015 年 8 月 20 日)Jeff King (peff)
    请参阅commit ebca2d4(2015 年 8 月 20 日)和 commit 905f203commit 578625f(2015 年 8 月 10 日)SZEDER Gábor (szeder)
    (由 Junio C Hamano -- gitster -- 合并到 commit fc9dfda,2015 年 8 月 31 日)

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

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

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

    即使是我们自己的 bash 完成脚本也会遇到这些问题。

    通过引入帮助完成脚本和一般的 shell 脚本 '--name-only' 选项修改'--list' 的输出和 '--get-regexp' 仅列出配置变量的名称,因此它们不会 必须执行容易出错的后处理来分隔变量名 不再是他们的价值观了。

    【讨论】:

      【解决方案6】:

      在基于 Linux 的系统上,您可以通过以下方式查看/编辑配置文件

      vi/vim/nano .git/config
      

      确保您位于 Git init 文件夹中。

      如果您想使用--global config,它是

      vi/vim/nano .gitconfig
      

      在 /home/userName

      这应该有助于编辑:https://help.github.com/categories/setup/

      【讨论】:

        【解决方案7】:

        您也可以调用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)
        
        • 没有参数,它与本地.git/config交互。
        • 使用--global,它与~/.gitconfig 交互。
        • --system 交互,它与$(prefix)/etc/gitconfig 交互。

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

        【讨论】:

          【解决方案8】:

          如果你只想列出 Git 配置的一部分,例如 aliascoreremote 等,你可以只需通过 grep 管道传输结果。比如:

          git config --global -l | grep core
          

          【讨论】:

            【解决方案9】:

            如何编辑我的全局 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 和(如果在存储库中)local 配置
            • 运行git config --list --show-origin,也会显示每个配置项的源文件

            如何读取一个特定的配置?

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

            参考:1.6 Getting Started - First-Time Git Setup

            【讨论】:

            • git config --list 显示所有全局、系统和本地?我需要肯定:)
            • 只是添加配置文件所在的位置:系统:C:\ProgramData\Git\config(在 Windows 中)。全局:C:\Users\user\.gitconfig (Windows) ~/.gitconfig (Linux) 本地:project-repo/.git/config
            • @AdiPrasetyo 是的。您可以运行git config --list --show-origin 来找出每个配置项的来源。
            • 每次我尝试使用 git config --global --edit 命令时,我都会遇到一些疯狂的编辑器,经过一段时间的争论,我想加入一些激进组织来追查是谁制作的。所以我很抱歉,我是-1。
            • 可以有多个特定于用户的全局配置文件。每 the docs: $XDG_CONFIG_HOME/git/config Second user-specific configuration file. If $XDG_CONFIG_HOME is not set or empty, $HOME/.config/git/config will be used. 如果你有这个文件和 ~/.gitconfig 你可以看到它们都被视为全局文件使用:git config --list --show-origin --show-scope
            【解决方案10】:

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

            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
            

            【讨论】:

            【解决方案11】:

            关于git config的一件重要事情:

            git config--local--global--system 级别和对应的文件。

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

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

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

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

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

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

            这正是你所需要的。

            【讨论】:

            • 有没有办法获取这些文件的路径?我知道您已经解释了在哪里可以找到它们,但我的问题来自不同的方法。
            • 搜索“在哪里可以找到系统、全局和本地 Git 配置文件”之类的内容,您将获得所需的内容。 ;)
            【解决方案12】:

            由于 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 显示确切的配置文件位置

            【讨论】:

              猜你喜欢
              • 2017-11-24
              • 1970-01-01
              • 2023-03-07
              • 1970-01-01
              • 2019-10-10
              • 2011-01-08
              • 2012-12-23
              • 2017-10-26
              • 1970-01-01
              相关资源
              最近更新 更多