2012-05-08 39 views
4

我知道子模塊,但有一個奇怪的邊緣情況,我想避免爲外部存儲庫的代碼保留一個單獨的目錄。可能讓git跟蹤外部回購單個文件?

我有一個LaTeX的項目我的研究生論文: https://github.com/jklukas/gradthesis

該方法使用我保持在一個單獨的存儲庫(爲他人方便地使用)的伴奏文件: https://github.com/jklukas/uwthesis

我可以包括uwthesis作爲子模塊,但LaTeX僅在主目錄中查找樣式文件。在LaTeX中存在一些奇怪的方法,比如在導入樣式文件時給出明確的路徑,但這看起來很難看。

目前,我只是在gradthesis回購中保存uwthesis.sty的副本。是否有可能將uwthesis配置爲遠程文件,並且能夠只爲這一個文件推送更改?

+1

你可以把符號鏈接到你的子模塊。 – larsks

+0

@larsks這實際上正是我所需要的,我想。它看起來像git處理符號鏈接相當合理。我會試一試。 –

+0

@larsks這最終成爲解決問題的絕佳解決方案。如果您以此作爲答案,我會接受它是正確的。 –

回答

7

你可以使用正常的git submodule力學添加子模塊:

git submodule add git://github.com/jklukas/uwthesis.git uwthesis 

,然後創建從頂級目錄符號鏈接到相應的樣式文件:

ln -s uwthesis/uwthesis.sty uwthesis.sty 
4

如果你的問題是有唯一

推動改變的只是這一個文件

您可以將所有的文件,除了其中一個,加入到.gitignore這樣的:

* 
!path/to/explicit.file 

並清除您當地的回購指數:

git rm -r --cached . 

然後添加,提交和推送任何你想要的。

+0

有趣的是,儘管我想要一些更長久的東西,以便我可以對漸變回購中的uwthesis.sty文件進行更改,並定期檢查回到假設回購庫中的文件。使用符號鏈接應該讓這種情況發生。 –