2014-07-14 98 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對此尤其不好)。 –