git config --global写到哪里?

Ian*_*han 958 git config

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

例:

git config --global core.editor "blah"
Run Code Online (Sandbox Code Playgroud)

我在这些地方找不到它:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config
Run Code Online (Sandbox Code Playgroud)

我还没有设置ENV?

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

Von*_*onC 1147

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

git config --list --show-origin
Run Code Online (Sandbox Code Playgroud)

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

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

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

(就像最新的PortableGit-2.14.2-64-bit.7z.exe,可以在任何你想要的地方解压缩)


原始答案(2010)

来自文档:

- 全球

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

由于您使用的是Git for Windows,因此可能不清楚这对应于哪个位置.但是如果你看看etc/profile(in C:\Program Files\Git),你会看到:

HOME="$HOMEDRIVE$HOMEPATH"
Run Code Online (Sandbox Code Playgroud)

含义:

C:\Users\MyLogin
Run Code Online (Sandbox Code Playgroud)

(在Windows 7上)

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

  • 我真的很傻,我没有在编辑命令中添加"--global"标志!"git config --global --edit"显示了我所有配置更改的文件,"git config --edit"是我一直打开和思考的文件,我刚刚设置的编辑器/比较/ etc配置项在哪里!非常感谢. (8认同)
  • @PeterAjtai"global",因为它适用于您的所有存储库.而不是"本地"(仅限一个回购)或"系统"(适用于所有用户的所有回购) (7认同)
  • 谢谢.我已经看到其他地方,它说它在%USERPROFILE%.在我的计算机上,HOMEDRIVE和HOMEPATH被重新映射到网络驱动器.搜索我的本地驱动器什么都没有.所以这有很大帮助. (6认同)
  • 真的很有用,我遇到了同样的问题 - 如果你在一个带有映射的家庭驱动器的域上,它会尝试在那里创建git配置.这将产生一个很好的功能请求 - 使用%HOMEDRIVE%或%USERPROFILE% (2认同)
  • 当它仅适用于一个用户时,为什么这称为全局?不会(对于unix)`/ etc/gitconfig`是"全局"而且`〜/ .gitconfig`只是"本地".....我想`.git/config`"超本地" - ---基本上,我发现这个令人困惑的"全球"术语,我想知道命名法是否有充分的理由? (2认同)
  • 事实证明,由于我的IT配置,像.git存储库中的那些特定于用户的文件总是在我的git安装的不同驱动器上. (2认同)

MAD*_*MAD 117

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

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

  • 如果缺少“C:\Users\<user_name>\.gitconfig”,运行此命令还将创建该文件。 (2认同)

Ben*_*Ben 72

在*nixes,它在~/.gitconfig.你家里有相应的档案吗?

在Windows上,您可以输入git bash

notepad ~/.gitconfig
Run Code Online (Sandbox Code Playgroud)

  • 在Windows上应该是一样的. (6认同)
  • 嗯......是吗? (5认同)
  • 如果你想轻松搞定,请写一个别名:)这是我的:`alias gitconfig ='open -a Sublime\Text.app~/.gitconfig'`.使用您想要的任何文本编辑器. (2认同)

has*_*ash 42

msysgit的路径是:

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

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

  • 可能更好地将其描述为%USERPROFILE%,那么答案将适用于所有Windows版本,包括过去,现在和将来. (16认同)
  • 除了我认为它实际上是%HOMEDRIVE %% HOMEPATH%与其他答案一样,在许多情况下等于%USERPROFILE%,但是我们中的一些人将IT配置指向映射驱动器. (3认同)

Phi*_*ley 34

除非已定义HOME环境变量,否则在Windows MsysGit上使用HOMEDRIVE和HOMEPATH环境变量派生全局位置.详细信息在"配置文件"脚本中.

在我的公司环境中,HOMEDRIVE是H:,然后映射到网络URL \\ share\$.然后将整个地图映射为"我的文档",这不是其他人所期望的.URL重新映射的驱动器可能还有一些问题.我甚至无法调整HOMEDRIVE或HOMEPATH变量.

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

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


Dan*_*nie 12

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

Settings / Git / Config / Edit global .gitconfig
Run Code Online (Sandbox Code Playgroud)

打开全局.gitignore文件.

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


Dmi*_*sky 11

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

git config --global --edit
Run Code Online (Sandbox Code Playgroud)

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


Ben*_*uer 10

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

%USERPROFILE%\.gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
C:\Program Files (x86)\SmartGitHg\git\etc\gitconfig
Run Code Online (Sandbox Code Playgroud)

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


Ris*_*man 9

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

同样在Win10系统中,只有当您倾向于通过Windows命令提示符设置系统变量时.gitconfig,才会第一次创建全局文件。一旦设置完毕,该文件就会在dir 中创建。user.nameuser.email
.gitconfig%USERPROFILE%

以下命令适用于 Win 和 MacOS

所以,让我们假设.gitconfig文件是​​否已经存在。您可以通过命令提示符/Gitbash/终端了解其位置:

git config --global --list --show-origin
Run Code Online (Sandbox Code Playgroud)


sam*_*tav 6

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

  • applypatch-MSG
  • 更新后的
  • 预提交
  • 准备提交-MSG
  • 提交-MSG
  • 预applypatch
  • 前底垫
  • 更新

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

  • 对OP问题没用. (2认同)

小智 5

我的全局也遇到了问题..gitconfig 对于有人也有这种奇怪的情况

git说:

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

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

C:\用户\ myUser.config\git的\ CONFIG

我不知道它来自哪里......但现在一切都像魅力一样.


Cam*_*zie 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配置文件的位置