git config --global写入哪里?


1024

当使用git config --global来处理事情,将会写入哪个文件?

例:

git config --global core.editor "blah"

我在这些地方找不到它:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

我还没有设置ENV?

我的Git版本:1.6.5.1.1367.gcd48 –在Windows 7上


1
您在使用msysgit还是其他?
codeguru

359
git config --global --edit无论您进行哪种设置,都应该告诉您确切的位置-只需查看编辑器中出现的文件即可。
MatrixFrog 2011年

55
git config --global --list当它不存在时,它也很有用,因为它给出了git期望的位置。
AJP

4
@AJP:这正是我的问题,但是如何更改要保存/读取它的位置?
Stijn de Witt 2014年

1
git config --list --show-origin将告诉您位置
eddyP23

Answers:


1237

更新2016:使用git 2.8(2016年3月),您可以简单地使用:

git config --list --show-origin

借助Git 2.26(2020年第一季度),您可以添加一个--show-scope选项

git config --list --show-origin --show-scope

您将看到哪个配置在哪里设置。
请参阅“ 我的Git配置中的设置来自哪里?

正如Steven Vascellaro 在评论中指出的那样,

它将与非标准安装位置一起使用。(即Git Portable

(例如最新的PortableGit-2.14.2-64-bit.7z.exe,可以将其解压缩到所需的任何位置)


原始答案(2010年)

文档

- 全球

对于写选项:写到全局~/.gitconfig文件而不是存储库.git/config

由于您使用的是Windows版Git,因此可能不清楚它对应的位置。但是,如果查看etc / profile(在中C:\Program Files\Git),则会看到:

HOME="$HOMEDRIVE$HOMEPATH"

含义:

C:\Users\MyLogin

(在Windows 7上)

这意味着该文件已C:\Users\MyLogin\.gitconfig在Windows 7 中用于Git。


8
我真的很傻,我没有在编辑命令中添加“ --global”标志!“ git config --global --edit”显示了我所有配置更改的文件,“ git config --edit”是我一直打开并思考的文件,刚才设置的editor / compare / etc配置项在哪里!非常感谢。
伊恩·沃恩

6
谢谢。我曾经看过其他地方,说它位于%USERPROFILE%。在我的计算机上,HOMEDRIVE和HOMEPATH被重新映射到网络驱动器。我的本地驱动器上的搜索没有任何结果。因此,这很有帮助。
Mike M. Lin

2
确实有用,我遇到了同样的问题-如果您所在的域具有映射的主驱动器,它将尝试在其中创建git config。这将是一个很好的功能请求-使用%HOMEDRIVE%或%USERPROFILE%
质粒87

2
当仅用于一个用户时,为什么将其称为全局?(对于unix)/etc/gitconfig不会是“ global”,而~/.gitconfig只能是“ local” .....我猜是.git/config“ hyper-local” -----基本上,我发现了这个混淆的“ global”术语,想知道命名是否有充分的理由吗?
Peter Ajtai 2012年

7
@PeterAjtai为“全局”,因为它适用于所有存储库。相对于“本地”(只为一个回购)或“系统”(这是所有回购,对所有用户)
VonC

123

我也在.gitconfigWindows机器上寻找全局变量,并使用git找到了这个巧妙的窍门。

执行一个:git config --global -e然后,如果幸运的话,您将获得一个加载了全局.gitconfig文件的文本编辑器。只需从那里查找文件夹(或尝试另存为...),等等!:-)


正是我想要的!-e命令!因为一次编辑属性不是我的主旨。
Patareco'1

1
C:\Users\<user_name>\.gitconfig如果缺少此命令,运行该命令也会创建一个。
pmbanka '16

我在非窗口模式下运行,找不到任何位置
Triynko

73

在* nixes上,它在中~/.gitconfig。您家中是否有相应的文件?

在Windows上,您可以输入git bash

notepad ~/.gitconfig

6
在Windows上应该是相同的。
Felix Kling

2
如果您想轻松使用它,请写一个别名:)这是我的:alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'。使用任何您想要的文本编辑器。
2014年8

43

msysgit的路径为:

Windows XP中 -C:\Documents and Settings\<user_name>\.gitconfig

Windows Vista + C:\Users\<user_name>\.gitconfig


17
将其描述为%USERPROFILE%可能更好,那么答案将适用于过去,现在和将来的所有Windows版本。
jarmod

3
除了我认为像其他答案一样,它实际上是%HOMEDRIVE %% HOMEPATH%,在许多情况下,它等于%USERPROFILE%,但是我们中有些人将它的IT配置指向了映射的驱动器。
ojchase

34

除非您已定义HOME环境变量,否则在Windows MsysGit上将使用HOMEDRIVE和HOMEPATH环境变量派生全局位置。有关详细信息,请参见“配置文件”脚本。

在我的公司环境中,HOMEDRIVE为H :,然后将其映射到网络URL \\ share \ $。然后将整个批次映射到“我的文档”,这不是其他人期望的。重新映射URL的驱动器可能还有其他问题。无论如何,我什至都无法调整HOMEDRIVE或HOMEPATH变量。

在我的情况下,我定义了一个个人HOME环境变量,并将其指向D:\ git \ GitHOME,并将所有这些GIT文件(不带扩展名)复制到GitHOME目录中以进行安全保存。

可以通过“我的电脑”属性对话框中的“高级”选项卡设置Windows环境变量。


1
我正在浏览即将发布在HOMEDRIVEHOMEPATH变量上的答案,因为它们只是在使用Bower时让我感到困惑的。Windows上似乎有许多实用程序从<system>:\User\<username>\.gitconfig, while the Git tool itself saves to %HOMEPATH%\。gitconfig . I had to go one step further and copy the updated config file from my H:`(我们的网络使用相同的驱动器号)读取到我的本地用户文件夹,只有在Bower调用Git时,Git才正确使用这些规则。

1
@ZaLiTHkA,在我的公司网络中,用户的Home(H :)驱动器也被重新映射回C:\ User \位置,所以我没有注意到。如果您可以确定是哪个FOSS实用程序出错了,那么这将对帮助报告/修复那些工具很有用。如果它们是内部公司工具,那么您就靠自己了;-)
Philip Oakley

除非它比简单的setter行更复杂,否则我不会在etc \ profile脚本中看到定义的HOME。它似乎仍然像描述的那样运行,但是我不清楚如今在何处设置HOME。
ojchase

@ojchase我写的--glob config的答案的一部分专门与Windows有关。核心Linux git写入诸如XDG指向的地方(即,我知道linux写入其他地方并具有其他约定,而且重要的是,它确实具有根目录,而Windows具有“ Drives” ;-)
Philip奥克利

@PhilipOakley我实际上也指Windows。对不起,我不清楚。结合您的答案和其他答案,我期望其中有某种HOME = $HOMEDRIVE$HOMEPATH(或类似的)生产C:\Program Files\Git\etc\profile线,但该生产线似乎不存在,但可能曾经存在吗?除非由环境变量设置$ HOME,否则我将无法确切地知道它是在设置$ HOME的。
ojchase

12

如果您在Windows PC上使用TortoiseGit,则可以使用:

Settings / Git / Config / Edit global .gitconfig

打开全局.gitignore文件。

但是,如果您在域中使用Windows(7)PC,则配置文件目录可能是网络共享(作为驱动器安装)。在这种情况下,TortoiseGit(至少:1.6.5.0)将您指向错误的目录(在c:...上)。有关更多信息,请参见已关闭的TortoiseGit 问题922。或使用%HOMEDRIVE %% HOMEPATH%打开包含.gitignore文件的目录。


10

我在Windows 8.1上将SmartGit与msysgit一起使用,并注意到该gitconfig文件可以有三个不同的位置:

%USERPROFILE%\.gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
C:\Program Files (x86)\SmartGitHg\git\etc\gitconfig

但是使用的是的一种%USERPROFILE%\.gitconfig


6

可能需要注意(对于* nix平台):某些类型的全局git配置/信息存储在中/usr/share/git-core/,例如git autocompletion脚本和以下(默认)钩子:

  • Applypatch-msg
  • 更新后
  • 预先提交
  • 准备提交消息
  • 提交消息
  • 预先贴布
  • 变基前
  • 更新

这些命令中的每一个都可以包含它们自己的要执行的命令集,在它们各自的文件名描述的时间。


2
对OP问题无用。
orbfish

5

我的全球业务也有问题 .gitconfig 这是因为有人也有这种奇怪的情况

git说:

致命:读取配置文件时发生未知错误

现在,我修复了它。问题是.gitconfig此文件夹中的第二个问题:

c:\ Users \ myUser.config \ git \ config

我不知道它是从哪里来的。


5

何时创建全局.gitconfig文件?

首先,git在安装过程中不会自动创建全局配置文件(.gitconfig)。该文件只有在首次写入后才会创建。如果您从未设置过系统变量,则该变量将不在您的文件系统上。我猜这可能是问题的根源。

要求Git创建它的一种方法是请求编辑。这样做将强制创建文件。

git config --global --edit

如果在发出此命令时监视用户的主文件夹,您将看到.gitconfig文件神奇地出现。

git配置存储在哪里?

这是与三个Git范围(即systemgloballocal)关联的配置文件的名称和位置的简要概述:

  • 系统Git配置:位于-git-install-location- / ming <32> / etc中的名为gitconfig的文件
  • 全局Git配置:位于用户主文件夹(C:\ Users \ git用户)中的名为.gitconfig的文件
  • 本地Git配置:本地仓库的.git文件夹中名为config文件

当然,眼见为实,因此这是显示每个文件和每个位置的图像。我从关于该主题的文章中提取了图片。

Windows Git配置文件位置(TheServerSide.com)

Git配置文件的位置


1
有一个第四位称为可移植配置:在这里他们提到了4个位; Windows的Git支持四个配置级别。最低级别是机器特定的配置设置,称为“便携式”,位于“%ProgramData%\ Git \ config”
Badr Elmers,

1
快炸死!我将使用新信息来更新文章。干杯!
卡梅伦·麦坚时

4

我正在运行Windows 7,并按照GitHub上的说明(一两年前)将git用作安装程序。我会想到一个相当普通的用例。上面的答案都没有帮助我,经过无奈之后,我终于在下面的目录中找到了我的“真实” gitconfig文件。

C:\ Users \ Bill \ AppData \ Local \ GitHub \ PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef \ etc

显然用PortableGit_后的用户名和后缀替换为唯一的GUID或类似名称。


1
仅在将GitHub用于Windows时才是这种情况。

3

我认为发布此报价很重要:

Windows的Git支持四个配置级别。最低级别是机器特定的配置设置,称为“便携式”,位于“%ProgramData%\ Git \ config”中。一个优先级是安装特定的配置设置,称为“系统”,位于“ \ mingw64 \ etc \ gitconfig”。这两个配置文件通常都需要提升的特权才能进行修改。

从称为“全局”配置的使用特定值开始,可以在“%UserProfile%.gitconfig”中找到该值,然后找到“用户可编辑”配置文件。最高优先级的配置设置位于“本地”配置中,通常可以在“ .git \ config”中找到。

它看到链接的博客中的建议是修改“系统”或“安装”特定的配置设置,这很好,但用户应期望Git的其他安装不会吸收所述设置。如果需要机器范围的设置,请使用“便携式”配置文件,否则请选择“全局”或“本地”配置文件。

希望人们发现此信息有用。

资源


3

正如@MatrixFrog在其注释中指出的那样,如果目标是编辑配置,则可能要运行:

git config --global --edit

此命令将--global在选择的编辑器中打开配置文件(在本例中为一个),并等待文件关闭(就像在期间一样git rebase -i)。


您可以使用此找出全球,其中.gitconfig所在-只要你的编辑告诉你什么目录中的文件位于您还可以使用其他开关(--system--local,等),以查找和编辑等.gitconfig位置。PS -e--edit
LightCC '19

1

卸载Msysgit并安装Cygwin + Git。然后,全局'.gitconfig'将在这里:C:\ cygwin(64)\ home \ [userName] \。gitconfig。

现在,您不必担心其他程序可能使用的环境变量。例如,我的环境变量将我指向工作Windows域环境中的映射驱动器。我不希望我的全局.gitconfig坐在我的“主”映射驱动器上。我也不知道依赖于Windows环境变量的其他应用程序可能会发生什么。操作部门出于某种原因可能需要将环境变量设置为映射的驱动器。

另外,如果您使用此方法指定了指向全局“ .gitconfig”的特定路径,则不必担心Mysysgit会覆盖“配置文件”配置设置。

一般而言,请保存自己,并在Windows中使用cygwin bash shell,让自己更快乐


1

我有一个类似的问题;问题是该.gitconfig文件位于

C:\Users\MyLogin\.gitconfig\

(在Windows 7上)

换句话说,文件位于中C:\Users\MyLogin\.gitconfig\.gitconfig,而不是位于中C:\Users\MyLogin\.gitconfig(这是Git寻找文件的位置)。


1

.gitconfig 文件位置

macOS测试还可以

全球

# global config
$ cd ~/.gitconfig

# view global config
$ git config --global -l

本地

# local config
$ cd .git/config

# view local config
$ git config -l

也许对您有好处:VimVSCode编辑git config


# open config with Vim

# global config
$ vim ~/.gitconfig

# local config
$ vim .git/config


# open config with VSCode

# global config
$ code ~/.gitconfig

# local config
$ code .git/config


0

我已经在以下位置安装了Git: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

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.