我有三个 git 配置文件。其中一个名为
.gitconfig
,包含我 90% 的 git 设置。常见的、与平台无关的设置位于此处。另一个名为 .gitconfig-windows
,包含仅限 Windows 的 Git 设置(例如,Notepad++ 作为我的编辑器,在 Linux 上不存在)。显然,我还有一个用于 Linux 平台的 .gitconfig-linux
。
现在我的
.gitconfig
文件顶部有以下内容:
[include]
path = .gitconfig-windows
由于我目前在 Windows 下工作,这意味着我的
.gitconfig
将包含 .gitconfig-windows
中的所有设置。当我在 Linux 上时,我必须编辑 .gitconfig
文件以指向 .gitconfig-linux
文件。每次切换平台时都必须编辑我的.gitconfig
,这非常乏味。我在 Dropbox 中拥有所有 3 个配置文件,以便在我的所有工作机器(Windows 和 Ubuntu 环境的混合)之间轻松同步。关于如何更轻松地设置 Git 以仅在这些平台上使用特定于平台的设置,有什么建议吗?
您可以将当前的
.gitconfig
文件重命名为 .gitconfig-common
之类的名称,并更改特定于平台的文件以包含它(而不是相反)。然后,在您工作的每台计算机上,在 Dropbox 的 outside创建一个
.gitconfig
文件,该文件不执行任何操作,只是在 Dropbox 中包含相应的特定于平台的文件。
因此,例如,在 Windows 上,您需要
.gitconfig
包含 .gitconfig-windows
,其中包含 .gitconfig-common
。 .gitconfig
文件只包含特定于平台的 include 指令,因此无需将其与 Dropbox 同步。
我没有 Windows 机器来测试这个,但以下方法可以让我在 Linux 和 MacOS 之间切换时包含依赖于操作系统的 gitconfig 文件:
[includeIf "gitdir:/Users/"]
path = ~/.gitconfig-macos
[includeIf "gitdir:/home/"]
path = ~/.gitconfig-linux
我的所有开发都是在我的主目录中完成的 - 如果您的 git 存储库位于主目录之外,这将不起作用。
我还包括一个特定于雇主的 gitconfig,其工作原理相同,其中所有与雇主相关的代码都位于 ~/code/
[includeIf "gitdir:~/code/employer/"]
path = ~/.gitconfig-employer