git中全局配置和本地配置有什么区别?

问题描述 投票:0回答:4

我是 Git 初学者。我通过互联网找到了那些。

我所知道的是

  • Local -:此文件中的值适用于单个存储库。
  • 全局 -:此文件中的配置值应用于单个用户。

我可以知道这些配置之间还有其他差异吗?

git git-config
4个回答
42
投票

Git 附带了一个名为

git config
的工具,可让您配置变量来控制 git 操作的各个方面。

git config
在升级之间保持其价值。因此,您只需设置一次。

基本上,有 3 个地方可以存储这些变量:

  1. 系统。
  2. 全球。
  3. 本地。

1。系统:这些变量可供系统中的每个用户使用,并存储在

[path]/etc/gitconfig

示例:
C:/Program Files/Git/etc/gitconfig

您可以通过传递 --system 作为选项来使 git 从

System
读取和写入。它还需要您拥有管理权限。


2。全局:全局配置可供当前用户所有项目使用,并存储在

~/.gitconfig
~/.config/git/config

示例:
C:/Users/Username/.gitconfig

您可以通过传递 --global 选项使 git 从

Global
读取和写入。


3. Local:本地配置仅适用于当前存储库并存储在

[gitrepo]/.git/config

示例:
C:/Users/MyProject/.git/config

您可以通过传递 --local 选项使 git 从

Local
读取和写入。


示例:

Create a local config
$ git config --local user.name "Local User"

# Create a global config
$ git config --global user.name "Global User"

# Create a system config
$ sudo git config --system user.name "System User"

验证您的配置来源:

git config --list --show-origin

此外,记住每个级别都会覆盖前一个级别的值,这一点很重要。

优先:

本地 > 全局 > 系统


37
投票

Git 使用分层配置方法,其中范围更广的设置如果不被覆盖,则会被继承。

顶层是系统配置(所有用户,通常在

/etc/git
中),然后是全局配置(可以用个人配置覆盖系统默认值,位于用户的主目录中,例如
$HOME/.gitconfig
$HOME/.config/git/config
),最后是存储库的本地配置(存储库根目录中的
.git/config
),它可以覆盖以上所有内容并设置存储库特定选项。

所有配置文件都具有相同的语法,但范围不同。

这提供了很大的灵活性。


8
投票

本地级别配置应用于调用 git config 的上下文存储库。本地配置值存储在可以在存储库的

.git
目录中找到的文件中:
.git/config
。如果您没有指定要使用的级别,则这是默认级别。

然而,全局配置值存储在位于用户主目录中的文件中。 Unix 系统上为

~ /.gitconfig
,Windows 上为
C:\Users\<username>\.gitconfig


0
投票

只是一个小注释,与这里提到的其他评论相反,写 git config --list 将输出混合配置值,而不仅仅是 --local 配置。 换句话说,默认情况下,如果在 git 项目中输入“git config --list” 默认不是--local

© www.soinside.com 2019 - 2024. All rights reserved.