使用 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 上
git config --global --edit
都应该告诉您确切的位置 - 只需查看您的编辑器中出现的文件即可。
git config --global --list
在它不存在时也很有用,因为它给出了 git 期望的位置。
2016 年更新:使用 git 2.8(2016 年 3 月),您可以简单地使用:
git config --list --show-origin
借助 Git 2.26(2020 年第一季度),您可以add a --show-scope
option
git config --list --show-origin --show-scope
您将看到在哪里设置了哪个配置。
请参阅“Where do the settings in my Git configuration come from?”
正如 Stevoisiak 指出的 in the comments,
它将适用于非标准安装位置。 (即 Git 便携版)
(就像最新的 PortableGit-2.14.2-64-bit.7z.exe
,可以在任何你想要的地方解压缩)
原始答案(2010)
从 the docs:
--global 用于写入选项:写入全局 ~/.gitconfig 文件而不是存储库 .git/config。
由于您使用的是 Git for Windows,因此可能不清楚它对应的位置。但是,如果您查看 etc/profile(在 C:\Program Files\Git
中),您会看到:
HOME="$HOMEDRIVE$HOMEPATH"
意义:
C:\Users\MyLogin
(在 Windows 7 上)
这意味着该文件位于 Windows 7 中 Git 的 C:\Users\MyLogin\.gitconfig
中。
我还在我的 Windows 机器上寻找全局 .gitconfig
,并使用 git 发现了这个巧妙的技巧。
执行:git config --global -e
,然后,如果幸运的话,您将获得一个加载了全局 .gitconfig
文件的文本编辑器。只需从那里查找文件夹(或尝试另存为...),等等! :-)
C:\Users\<user_name>\.gitconfig
,运行此命令还将创建一个 C:\Users\<user_name>\.gitconfig
。
在 *nixes 上,它位于 ~/.gitconfig
中。你家有对应的文件吗?
在 Windows 上,您可以输入 git bash
notepad ~/.gitconfig
alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'
。使用您想要的任何文本编辑器。
msysgit 的路径是:
Windows XP -C:\Documents and Settings\<user_name>\.gitconfig
Windows Vista+ C:\Users\<user_name>\.gitconfig
全局位置是在 Windows MsysGit 上使用 HOMEDRIVE 和 HOMEPATH 环境变量派生的,除非您已经定义了 HOME 环境变量。 'profile' 脚本中对此进行了详细说明。
在我的公司环境中,HOMEDRIVE 是 H:,然后映射到网络 URL \\share\$。然后将整个批次映射到“我的文档”,这不是其他人所期望的。驱动器到 URL 重新映射可能存在一些进一步的问题。无论如何,我什至无法调整 HOMEDRIVE 或 HOMEPATH 变量。
在我的例子中,我定义了一个个人 HOME 环境变量并将其指向 D:\git\GitHOME 并将所有这些 GIT 文件(没有扩展名)复制到 GitHOME 目录以安全保存。
可以通过“我的电脑”属性对话框中的“高级”选项卡设置 Windows 环境变量。
HOMEDRIVE
和 HOMEPATH
变量的答案,因为他们只是在使用 Bower 时发现了我。 Windows 上的许多实用程序似乎从 <system>:\User\<username>\.gitconfig, while the Git tool itself saves to
%HOMEPATH%\.gitconfig. I had to go one step further and copy the updated config file from my
H:` (我们的网络为此使用相同的驱动器号)读取到我的本地用户文件夹,然后 Git 才正确使用规则当鲍尔打电话时。
C:\Program Files\Git\etc\profile
中有某种 HOME = $HOMEDRIVE$HOMEPATH
(或类似的)行,而该行似乎不存在,但可能已经习惯了?我无法确切地弄清楚 $HOME 的设置是什么,除非它是由我不想这样做的环境变量设置的。
什么时候创建全局 .gitconfig 文件?
首先,git 在安装过程中不会自动创建全局配置文件 (.gitconfig)。文件在第一次写入之前不会创建。如果您从未设置过系统变量,它就不会出现在您的文件系统中。我猜这可能是问题的根源。
要求 Git 创建它的一种方法是请求编辑。这样做将强制创建文件。
git config --global --edit
如果您在发出此命令时监视用户的主文件夹,您将看到 .gitconfig 文件神奇地出现。
git配置存储在哪里?
以下是与三个 Git 作用域(即系统、全局和本地)相关的配置文件的名称和位置的简要说明:
系统 Git 配置:名为 gitconfig 的文件位于 -git-install-location-/ming<32>/etc
全局 Git 配置:名为 .gitconfig 的文件位于用户的主文件夹(C:\Users\git 用户)
本地 Git 配置:本地 repo 的 .git 文件夹中名为 config 的文件
当然,眼见为实,所以这里有一张图片显示了每个文件和每个位置。我从我写的一篇关于该主题的文章中提取了图像。
Windows Git configuration file locations (TheServerSide.com)
https://i.stack.imgur.com/XqZJe.jpg
如果您在 Windows PC 上使用 TortoiseGit,您可以使用:
Settings / Git / Config / Edit global .gitconfig
打开全局 .gitignore 文件。
但是,如果您在域中使用 Windows (7) PC,您的配置文件目录可能是网络共享(作为驱动器安装)。在这种情况下,TortoiseGit(至少:1.6.5.0)将您指向错误的目录(在 c:...上)。有关详细信息,请参阅已关闭的 TortoiseGit issue 922。或者使用 %HOMEDRIVE%%HOMEPATH% 打开包含 .gitignore 文件的目录。
正如@MatrixFrog 在他们的 comment 中指出的那样,如果目标是编辑配置,您可能需要运行:
git config --global --edit
此命令将在选择的编辑器中打开配置文件(在本例中为 --global
),并等待文件关闭(就像在 git rebase -i
期间一样)。
.gitconfig
的位置 - 只要您的编辑器告诉您文件所在的目录。您还可以使用其他开关(--system
、--local
等)来查找和编辑其他 .gitconfig
个位置。 PS -e
与 --edit
相同
我在 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
的那个。
注意(对于 *nix 平台)可能有用:某些类型的全局 git 配置/信息存储在 /usr/share/git-core/
中,例如 git 自动完成脚本和以下(默认)挂钩:
应用补丁消息
更新后
预提交
准备提交消息
提交消息
预应用补丁
预变基
更新
它们中的每一个都可以包含它们自己的一组要执行的命令,时间由它们各自的文件名描述。
完全同意@cameron-mckenzie关于全局.gitconfig
文件何时创建?的回答here on this page, above(这显然适用于每个操作系统)。他的其余答案涉及Win7系统。
在 Win10 系统 中,只有当您倾向于设置 user.name
& 时,才会首次创建 .gitconfig
全局文件。 user.email
系统变量通过 Windows 命令提示符。
一旦设置,.gitconfig
文件将在 %USERPROFILE%
目录中创建。
下面的命令适用于 Win 和 MacOS,两者
所以,让我们假设 .gitconfig
文件是否已经存在。您可以通过命令提示符/Gitbash/终端了解其位置:
git config --global --list --show-origin
我正在运行 Windows 7 并按照 GitHub 上的说明(一两年前)使用 git 作为设置。我会想到一个相当常见的用例。上面的答案都没有帮助我,在经历了很多挫折之后,我最终在以下目录中找到了我的“真正的”gitconfig 文件;
C:\Users\Bill\AppData\Local\GitHub\PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef\etc
显然替换您的用户名,并且大概 PortableGit_ 之后的后缀是唯一的 GUID 或类似的。
我的全局.gitconfig
也有问题这是因为有人也有这种奇怪的情况
git 说:
致命:读取配置文件时发生未知错误
现在我修好了。问题出在此文件夹中的第二个 .gitconfig
:
c:\Users\myUser.config\git\config
我不知道它是从哪里来的……但现在一切又像魅力一样运作了。
我认为发布此报价很重要:
Git for Windows 支持四个级别的配置。最低级别是机器特定的配置设置,称为“便携式”,并且存在于“%ProgramData%\Git\config”中。一个优先级是安装特定配置设置,称为“系统”,位于“\mingw64\etc\gitconfig”。这两个配置文件,一般都需要提升权限才能修改。从称为“全局”配置的使用特定值开始,可以在“%UserProfile%.gitconfig”中找到,我们找到“用户可编辑”配置文件。最高优先级的配置设置在“本地”配置中,通常可以在“.git\config”中找到。它看到链接的博客中的建议是修改“系统”或“安装”特定的配置设置,这很好,但用户应该期望 Git 的其他安装不会吸收这些设置。如果您想要机器范围的设置,请使用“便携式”配置文件,否则选择“全局”或“本地”配置文件。希望人们会发现这些信息有用。
卸载 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 上)
换言之,该文件位于 C:\Users\MyLogin\.gitconfig\.gitconfig
中,而不是 C:\Users\MyLogin\.gitconfig
(Git 正在寻找文件的位置)。
.gitconfig 文件位置
macOS 测试正常
全球的
# global config
$ cd ~/.gitconfig
# view global config
$ git config --global -l
当地的
# local config
$ cd .git/config
# view local config
$ git config -l
也许对你有好处:编辑 git config 的 Vim 或 VSCode
# 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
git help config
文件部分有详细的描述。
https://i.stack.imgur.com/DNCf5.png
我的 Git 安装在:C:\Users\_myuserfolder_\AppData\Local\Programs\Git
/etc/gitconfig
不是“全局”而~/.gitconfig
不是“本地”.....我猜.git/config
“超本地”----- 基本上,我发现“全球”这个令人困惑的术语,我想知道命名是否有充分的理由?