在Windows上更改.gitconfig位置

Roo*_*ook 98 windows git

默认情况下,Windows Git将全局.gitconfig放入 c:\documents and settings\user\

如何更改该位置以便.gitconfig存储在c:\my_configuration_files\

它可以完成吗?

Mar*_*wis 62

如果你设置HOMEc:\my_configuration_files\,那么git将在那里找到.gitconfig.此处描述编辑环境变量.您需要设置HOME变量,然后重新打开任何cmd.exe窗口.使用"set"命令验证HOME确实指向正确的值.

当然,改变HOME也会影响其他应用程序.但是,通过阅读git的源代码,这似乎是更改这些文件位置的唯一方法,而无需调整命令行.您还应该考虑Stefan的回答:您可以设置GIT_CONFIG变量.但是,为了给它你想要的效果,你需要将--global标志传递给所有git调用(加上任何本地.git/config文件被忽略).

  • 有没有人真正让这个工作没有移动HOME弄乱其他东西的副作用? (8认同)
  • 嗯,不确定我是否理解正确但不会改变HOME对所有其他使用它的应用程序有影响吗?是不是有办法改变HOME,但是Git本地化? (2认同)

Mic*_*ech 43

更改HOME目录是错误的.更好的是为gitconfig创建到HOME目录的符号链接.

  1. 将.gitconfig从用户主目录移动到所需的目录.
  2. 以管理员身份运行命令行
  3. 转到您的用户主目录
  4. 输入mklink .gitconfig\PathForNewLocationOfConfig.gitconfig

  • 值得一提的是,如果你运行git config --global将一个项添加到你的配置中,你的符号链接将被正在使用的.gitconfig的实际副本覆盖.我在测试\ PathForNewLocationOfConfig.gitconfig是我的Dropbox文件夹的位置时遇到了这个问题 (9认同)
  • 如果.gitconfig位于网络驱动器上,则可能会出现"设备不支持符号链接"消息,该消息将此选项排除在外. (7认同)
  • 在这里,组警察 (AD) 设置了 HOMEDRIVE、HOMEPATH 和 HOMESHARE,但不是简单的、古老的、简单的 HOME。在没有 HOME 的情况下,git 似乎使用了前三者的某种组合。但是设置 HOME(通过设置用户特定环境变量的常用方法)有效:GIT 使用您设置的 HOME 值,而 grouppolicy 不会破坏 HOME。 (4认同)
  • 我不认为这个解决方案对任何人都有用.在我们公司,`$ HOME`在网络驱动器上,只要网络连接有问题,链接就无法访问. (3认同)
  • @MotoWilliams 在 2017 年重新审视了这一点:使用 --global 进行编辑后,符号链接保持不变 (2认同)

Joe*_*man 25

我已经使用稍微不同的方法解决了这个问题,我已经看到它可以用于其他配置文件. Git Config支持包含允许您指向其他位置的配置文件的包含.然后导入并扩展该备用位置,就好像它是.gitconfig文件的一部分一样.所以现在我只在.gitconfig中有一个条目:

[include]
   path = c:\\path\\to\\my.config
Run Code Online (Sandbox Code Playgroud)

Git写入.gitconfig文件的任何更新都不会覆盖我的包含路径.这确实意味着偶尔我可能需要将值从.gitconfig移动到my.config.

  • 我想知道是否可以将git config写入[include] d文件中的文件。 (2认同)

Mic*_*ltu 25

至少从 2.34.1 开始,您现在可以将GIT_CONFIG_GLOBAL环境变量设置为文件的路径.gitconfig。有关更多详细信息,请参阅https://git-scm.com/docs/git-config#ENVIRONMENT 。

  • 对于那些为 HOMEDRIVE 和 HOMEPATH 集中设置值而苦苦挣扎的人来说,上述解决方案很好。如果要确保全局 .gitconf 放入 c:\users\username\ 使用以下 PS 脚本: `[System.Environment]::SetEnvironmentVariable('GIT_CONFIG_GLOBAL',$env:USERPROFILE + '\.gitconfig' ,'用户')` (3认同)

Ste*_*äwe 12

查看文件的FILESENVIRONMENT部分git help config.


sco*_*dev 11

我不是Git大师,但是通过搜索对我来说最简单的解决方案就是去文本编辑器中C:\Program Files (x86)\Git\etc打开profile.

if第37行有一个声明# Set up USER's home directory.我取出了if声明并放入了我想要gitconfig的本地目录,然后我只是将我现有的gitconfig文件(在网络驱动器上)复制到该位置.

  • git 2.24(2019 年 12 月)中不再存在“home”一词(或任何与您的行类似的内容:37)。 (3认同)

小智 6

对我来说,更改Start In位置(至少是git-gui)并没有影响它寻找.gitconfig的位置.我的工作设置安装U:对于我们的家,但我们没有权限用U:直接编写,只有为我们内部创建的子目录,所以这对我来说是一个交易破坏者.

我通过创建一个批处理脚本解决了这个问题,该脚本将覆盖该应用程序的HOMEDRIVE和HOMEPATH env变量.然后将我的"开始"菜单快捷方式更改为指向该批处理脚本.

  • 我想了解有关您为完成此修复所做的工作的更多信息。 (2认同)

小智 5

首先检查 HOME 设置,然后将 HOME 和 HOMEDRIVE 更改为现有目录。

c:\git>set HOME
HOME=U:\
HOMEDRIVE=U:
HOMEPATH=\
Run Code Online (Sandbox Code Playgroud)

然后通过以下方式更改 HOME 和 HOMEDRIVE

set HOME=c:\tmp
set HOMEDRIVE=C:
Run Code Online (Sandbox Code Playgroud)