当使用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上


在*nixes上,它在~/.gitconfig中。你家里有相应的文件吗?

在Windows上,你可以输入git bash

notepad ~/.gitconfig

msysgit的路径如下:

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

Windows Vista+ C:\用户\<用户名>\.gitconfig


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

git config --list --show-origin

在Git 2.26 (Q1 2020)中,你可以添加——show-scope选项

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

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

正如史蒂夫西亚克在评论中指出的那样,

它将适用于非标准安装位置。(即Git Portable)

(比如最新的PortableGit-2.14.2-64-bit.7z.exe,你可以在任何地方解压)


原答案(2010)

从文档中可以看出:

——全球 对于写入选项:write to global ~/。Gitconfig文件,而不是仓库的。git/config。

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

HOME="$HOMEDRIVE$HOMEPATH"

意义:

C:\Users\MyLogin

(适用于windows7)

这意味着文件在c:\ users \ mylogin \。gitconfig用于Windows 7下的Git。


全局位置是在Windows MsysGit上使用HOMEDRIVE和HOMEPATH环境变量派生的,除非您已经定义了HOME环境变量。在'profile'脚本中详细描述。

在我的公司环境中,HOMEDRIVE是H:,然后映射到一个网络URL \\share\$。然后,所有的文件都被映射为“我的文件”,这不是其他人所期望的。URL重映射的驱动器可能存在进一步的问题。我甚至无法调整HOMEDRIVE或HOMEPATH变量。

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

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


如果你在windows电脑上使用TortoiseGit,你可以使用:

Settings / Git / Config / Edit global .gitconfig

打开全局文件。gitignore。

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


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

applypatch-msg 后更新 未雨绸缪 prepare-commit-msg commit-msg pre-applypatch pre-rebase 更新

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


我还在我的Windows机器上寻找全局的.gitconfig,并用git找到了这个巧妙的技巧。

执行a: gitconfig——global -e,然后,如果你幸运的话,你会得到一个文本编辑器加载你的全局.gitconfig文件。只需从那里查找文件夹(或尝试另存为…),等voilà!: -)


我在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的。


我正在运行Windows 7,并按照GitHub上的说明(一两年前)使用git作为安装。我认为这是一个相当常见的用例。上面的答案对我没有帮助,在经历了很多挫折后,我最终在以下目录中找到了我的“真正的”gitconfig文件;

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

显然要替换用户名,PortableGit_后面的后缀是唯一的GUID或类似的。


我的全局.gitconfig也有一个问题 这是为了案例有人也有这种奇怪的情况

git说:

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

现在我修好了。问题是这个文件夹中的第二个.gitconfig:

c: \ \用户myUser配置git \配置。

我不知道它从何而来……但现在一切又像魔法一样管用了。


卸载Msysgit,安装Cygwin + Git。然后是global '。C:\cygwin(64)\home\[userName]\。gitconfig。

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

此外,你不必担心Mysysgit覆盖你的'配置文件'配置设置,如果你指定一个特定的路径全局'。Gitconfig ',使用这个方法。

一般来说,节省自己,在窗口中使用cygwin bash shell会更快乐


我也遇到过类似的问题;问题是.gitconfig文件位于

C:\Users\MyLogin\.gitconfig\

(适用于windows7)

换句话说,该文件位于c:\ users \ mylogin \.gitconfig\。而不是c:\ users \ mylogin \。gitconfig(这是Git寻找文件的地方)。


什么时候创建全局的.gitconfig文件?

首先,git在安装过程中不会自动创建全局配置文件(.gitconfig)。该文件直到第一次写入时才被创建。如果您从未设置过系统变量,那么它就不会在您的文件系统上。我猜这可能就是问题的根源。

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

Git配置——global——edit

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

git配置存储在哪里?

以下是与三个Git作用域(即系统、全局和本地)相关的配置文件的名称和位置的快速概述:

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

当然,眼见为实,所以这里有一个图像显示每个文件和每个位置。我从我写的一篇关于这个主题的文章中截取了这张图片。

Windows Git配置文件位置:TheServerSide.com


我认为这句话很重要:

Git for Windows supports four levels of configuration. At the lowest level is the machine specific configuration settings known as "portable" and lives a "%ProgramData%\Git\config". One priority level us the installation specific configuration settings known as "system", which live at "\mingw64\etc\gitconfig". Both of these configuration file, generally require elevated privileges to modify. Starting with the use specific values known as "global" configuration, which can be found at "%UserProfile%.gitconfig", we find the "user editable" configuration files. The highest priority configuration settings are in the "local" configuration, which can usually be found at ".git\config". It see the recommendation in the blog linked is to modify the "system" or "installation" specific configuration settings, which is fine but users should expect that other installations of Git would not absorb said settings. If you want machine wide settings, use the "portable" configuration file, otherwise choose the "global" or "local" configuration files. Hopefully, people find this information useful.


正如@MatrixFrog在他们的评论中指出的,如果目标是编辑配置,你可能想要运行:

git config --global --edit

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


我把Git安装在:C:\Users\_myuserfolder_\AppData\Local\Programs\Git


.gitconfig文件位置

macOS测试OK

全球

# global config
$ cd ~/.gitconfig

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

当地的

# local config
$ cd .git/config

# view local config
$ git config -l


也许对你有好处:Vim或VSCode编辑git配置


# 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


只是完全同意@cameron-mckenzie在本页上的回答,上面关于何时创建全局的.gitconfig文件?(这显然适用于所有操作系统)。他的其余回答涉及Win7系统。

在Win10系统中也是如此,只有当你想要设置user.name & user时,才会第一次创建.gitconfig全局文件。通过Windows命令提示符电子邮件系统变量。设置完成后,.gitconfig文件将在%USERPROFILE% dir中创建。

下面的命令适用于Win和MacOS

因此,让我们假设.gitconfig文件已经存在。你可以通过Command-prompt/ git - bash/Terminal知道它的位置:

git config --global --list --show-origin

Git帮助配置

文件部分有详细说明。