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

其他回答

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。

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

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

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

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

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

Settings / Git / Config / Edit global .gitconfig

打开全局文件。gitignore。

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

.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

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

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

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