2014-07-14 101 views
2

我有三个git配置文件。其中一个名为.gitconfig,包含我的git设置的90%。常见的平台不可知的设置在这里。另一个名为.gitconfig-windows,并且包含Git的Windows设置(Notepad ++作为我的编辑器,例如,它不会在Linux上存在)。显然,我也有一个用于Linux平台的.gitconfig-linux平台特定的git配置文件

现在,我有我的.gitconfig文件的顶部如下:

[include] 
    path = .gitconfig-windows 

因为我目前正在窗外,这意味着我的.gitconfig将包括所有的设置从.gitconfig-windows。当我在Linux上时,我必须编辑我的.gitconfig文件以指向.gitconfig-linux文件。每次切换平台时必须编辑我的.gitconfig非常繁琐。我在Dropbox中拥有所有3个配置文件,以便在所有工作机器(Windows和Ubuntu环境的混合)之间轻松进行同步。有关如何更轻松地设置Git以仅在这些平台上使用平台特定设置的任何建议?

+0

这个问题可能太宽泛了,我不知道。无论如何,我在想你可以简单地在你的主目录中设置指向你的Dropbox文件的符号链接,然后让你的'include.path'指向每个符号链接。我不确定当Git在路径中找到不存在的文件时会发生什么。另外,虽然Windows有一个符号链接(尤其是Windows 7和8)的实现,但我不确定它们是否能够为此工作,尽管Linux风格的符号链接肯定可以工作。 –

+0

为什么不把文件保存在一个带有3个分支的git仓库中:** master **只有普通的'.gitconfig'文件,** linux **有'.gitconfig'以及正确的include和'.gitconfig -linux'和** windows **具有'.gitconfig'以及正确的include和'.gitconfig-windows'。当然,当你需要更新通用设置文件时,你可以在特定于平台的分支中合并这些更改。 –

+0

@CristianCiupitu我认为这可能会导致时间旅行。 –

回答

1

您可以将当前的.gitconfig文件重命名为类似.gitconfig-common的文件,并更改平台特定的文件以包含它(而不是其他方式)。然后,在你工作的每台机器上,创建一个文件以外的Dropbox,它除了在你的Dropbox中包含适当的平台特定文件外什么也不做。例如,你可以在.gitconfig包括.gitconfig-windows,其中包括.gitconfig-common.gitconfig文件只包含特定于平台的include指令,因此不需要将其与Dropbox同步。

+0

有趣的是我实际上正在做这件事一段时间,但扭转了他们,因为许多工具不知道如何阅读“包括”在git配置文件。所以,它认为我的.gitconfig几乎是空的,会给我一大堆警告(GitExtensions对此尤其不好)。 –