全局git配置数据存储在哪里?

使用git config --global进行设置时,它将写入哪个文件?

示例:

git config --global core.editor "blah"

我在这些地方找不到:

C:\Program Files\Git\etc\gitconfig
C:\myapp\.git\config

我没有设置ENV?

我的Git版本:1.6.5.11367.gcd48-在Windows 7上

920035 次浏览

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

在Windows上,您可以输入git bash

notepad ~/.gitconfig

msysgit的路径是:

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

WindowsVista+C:\Users\<user_name>\.gitconfig

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

git config --list --show-origin

使用Git 2.26(Q1 2020),您可以添加#0选项

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

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

正如甜菜所指出的在评论

它将适用于非标准安装位置(即git可移植)。

(像最新的#0,可以在任何你想要的地方解压)


原始答案(2010)

的文档

--全球

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

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

HOME="$HOMEDRIVE$HOMEPATH"

含义:

C:\Users\MyLogin

(在Windows 7上)

这意味着该文件位于Windows 7中Git的#0中。

全局位置在Windows MsysGit上使用HOMEDRIVE和HOMEPATH环境变量派生,除非您定义了HOME环境变量。配置文件脚本中有详细说明。

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

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

可以通过我的计算机属性对话框中的高级选项卡设置windows环境变量。

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

Settings / Git / Config / Edit global .gitconfig

打开全局. gitignore文件。

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

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

  • 应用补丁消息
  • 更新后
  • 预提交
  • 发送消息准备提交消息
  • 提交消息
  • 预贴片
  • 预调整
  • 更新

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

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

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

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

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

但是使用的是来自%USERPROFILE%\.gitconfig的那个。

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

C:\用户\账单\应用数据\本地\G it Hub\PortableGit_054f2e797ebafd44a30203088cd3 d 58663 c 627 ef\etc

显然替换您的用户名,并且PortableGit_之后的后缀可能是唯一的GUID或类似的。

我的全局.gitconfig也有问题这种情况有人也有这种奇怪的

git说:

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

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

c:\myUser.config\git\config

我不知道它是从哪里来的…但现在一切都像魅力一样运作。

卸载Msysgit并安装Cygwin+Git。然后全局“. gitconfig”将在此处:C:\cygwin(64)\home\[userName]\. gitconfig。

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

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

一般来说,保存自己并在Windows中使用cygwin bash shell并更快乐

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

C:\Users\MyLogin\.gitconfig\

(在Windows 7上)

换句话说,该文件位于#0,而不是#1(这是Git查找文件的地方)。

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

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

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

git配置

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

git配置存储在哪里?

以下是与三个Git作用域(即系统全球当地)关联的配置文件的名称和位置的快速概要:

  • System Git配置:位于-g it-安装-位置-/ming<32>/etc的名为gitconfig的文件
  • 全局Git配置:名为. gitconfig的文件位于用户的主文件夹(C:\用户\git用户)
  • 本地Git配置:本地存储库. git文件夹中名为配置的文件

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

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

Git配置文件的位置

我认为重要的是发表这句话:

Git for Windows支持四个级别的配置。在最低级别是称为“可移植”的机器特定配置设置,并保存为“%ProgramData%\Git\config”。一个优先级是我们称为“system”的安装特定配置设置,位于“\ming w64\etc\gitconfig”。这两个配置文件通常都需要提升的权限才能修改。

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

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

希望人们发现这些信息有用。

来源

正如@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

也许对你来说是一个奖励: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文件是什么时候创建的?的答案在这个页面上,上面(这显然适用于每个操作系统)。他的答案的其余部分涉及Win7系统。

win10系统中,只有当您倾向于通过windows命令提示符设置user.nameuser.email系统变量时,.gitconfig全局文件才会第一次创建。
一旦设置,.gitconfig文件将在%USERPROFILE%目录中创建。

下面的命令适用于Win和MacOS,两者都适用

所以,假设.gitconfig文件是否已经存在。您可以通过命令提示符/Gitbash/终端通过以下方式知道它的位置:

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

git help config

文件部分有详细的描述。

输入图片描述