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上。
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配置设置来自哪里?”
它适用于非标准安装位置 (例如Git Portable)。
(例如最新版本的PortableGit-2.14.2-64-bit.7z.exe
,可以在任何您想要的位置解压缩)
原始回答 (2010)
从文档中:
--global
对于写入选项: 写入全局
~/.gitconfig
文件而不是存储库的.git/config
文件。
由于您正在使用Git for Windows,可能不清楚此位置对应的是哪个文件夹。但是,如果您查看C:\Program Files\Git
中的etc/profile文件,您会看到:
HOME="$HOMEDRIVE$HOMEPATH"
意思:
C:\Users\MyLogin
(在 Windows 7 上)
这意味着在 Windows 7 上,Git 配置文件位于 C:\Users\MyLogin\.gitconfig
。
/etc/gitconfig
不是更适合称为“全局”(global),而 ~/.gitconfig
才应该称为“本地”(local)吗...... 我猜 .git/config
应该被称为"超本地"(hyper-local) ----- 基本上,我认为将此称为“全局”(global)有点令人困惑,我想知道是否有一个很好的命名规则来解释这个术语? - Peter Ajtai我也在我的Windows机器上寻找全局的.gitconfig
, 幸运的是,我发现了一个使用Git的好技巧。
执行git config --global -e
,如果你很幸运,就会打开一个文本编辑器并加载全局的.gitconfig
文件。从那里简单地查找文件夹(或尝试"另存为..."),et voilà! :-)
C:\Users\<user_name>\.gitconfig
文件(如果它不存在)。 - pmbankaalias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'
。使用任何文本编辑器都可以。 - aug在Windows MsysGit上,全局位置是通过使用HOMEDRIVE和HOMEPATH环境变量导出的,除非你已经定义了HOME环境变量。这在“profile”脚本中有详细描述。
在我的公司环境中,HOMEDRIVE是H:,然后被映射到一个网络URL \\share\$。整个映射再被映射到"My Documents",这不是其他人所期望的位置。可能还存在一些关于驱动器到URL重映射的问题。我甚至无法调整HOMEDRIVE或HOMEPATH变量。
在我的情况下,我定义了一个个人HOME环境变量,并将其指向D:\git\GitHOME,并将所有这些没有扩展名的GIT文件复制到GitHOME目录中进行安全保存。
Windows环境变量可以通过“我的电脑”属性对话框中的高级选项卡来设置。
HOMEDRIVE
和HOMEPATH
变量的答案,因为在使用Bower时它们让我遇到了问题。似乎Windows上的许多实用程序都从<system>:\User\<username>\.gitconfig
读取,而Git工具本身保存在%HOMEPATH%\.gitconfig
中。我不得不进一步操作,将更新的配置文件从我的H:
(我们的网络使用相同的驱动器字母)复制到我的本地用户文件夹中,只有这样,当Bower调用Git时,Git才能正确使用规则。 - user909694C:\Program Files\Git\etc\profile
中有类似于 HOME = $HOMEDRIVE$HOMEPATH
(或类似)的行,但这一行似乎不存在,但可能以前用过?我还没有弄清楚到底是什么设置了 $HOME,除非它是由环境变量设置的,但我不想这样做。 - ojchase全局的.gitconfig文件是何时创建的?
首先,git在安装过程中不会自动创建全局配置文件(.gitconfig)。直到第一次写入后该文件才会被创建。如果你从未设置系统变量,那么它就不会存在于你的文件系统中。我猜这可能是问题的根源。
请求编辑是要求Git创建它的一种方式。这样做将强制创建该文件。
git config --global --edit
当你发出这个命令时,请监视用户的主目录,你会看到.gitconfig文件神奇地出现了。
Git配置存储在哪里?
以下是涉及三个Git范围的配置文件名称和位置,即系统,全局和本地的快速概述:
当然,眼见为实,下面是一张显示每个文件和每个位置的图像。我从我撰写的一篇关于此主题的文章中提取了该图像。
正如@MatrixFrog在他们的评论中指出的那样,如果目标是编辑配置文件,则您可能想要运行:
git config --global --edit
这个命令会打开配置文件(在本例中是--global
文件),在所选的编辑器中等待文件关闭(就像在git rebase -i
期间一样)。
.gitconfig
文件所在的位置,只要你的编辑器告诉你该文件所在的目录即可。你也可以使用其他开关(例如--system
、--local
等)来查找和编辑其他.gitconfig
文件的位置。另外,-e
与--edit
是相同的。 - LightCC如果你在Windows电脑上使用TortoiseGit,你可以使用以下方法:
Settings / Git / Config / Edit global .gitconfig
打开全局的 .gitignore 文件。
但是如果你在一个域中使用 Windows(7)电脑,则你的配置文件目录可能是网络共享(作为驱动器挂载)。在这种情况下,TortoiseGit(至少:1.6.5.0)会将你引导到错误的目录(在C:...上)。请参阅已关闭的 TortoiseGit 问题 922 以获取更多信息。或者使用 %HOMEDRIVE%%HOMEPATH% 打开包含 .gitignore 文件的目录。
我正在使用 SmartGit 和 msysgit 在 Windows 8.1 上,并注意到 gitconfig
文件有三个不同的位置:
%USERPROFILE%\.gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
C:\Program Files (x86)\SmartGitHg\git\etc\gitconfig
但实际使用的是 %USERPROFILE%\.gitconfig
中的配置。
完全同意@cameron-mckenzie在此页面上方的回答中针对“全局.gitconfig文件是何时创建的?”的回答(这显然适用于每个操作系统)。他的其余回答涉及Win7系统。
在Win10系统中,当您通过Windows命令提示符设置user.name
和user.email
系统变量时,.gitconfig
全局文件也只会在第一次创建。一旦设置完成,.gitconfig
文件将在%USERPROFILE%
目录中创建。
因此,假设.gitconfig
文件已经存在,则可以通过命令提示符/Gitbash/Terminal了解其位置:
git config --global --list --show-origin
git config --global --edit
都会告诉你确切的位置 —— 只需查看编辑器中出现的文件即可。 - Tylergit config --global --list
命令也很有用,即使配置文件不存在,它也会告诉你 git 预期它在哪个位置。 - AJP