可以让git跟踪外部仓库中的单个文件吗?

时间:2012-05-08 17:08:50

标签: git git-submodules

我知道子模块,但有一个奇怪的边缘情况,我想避免为外部存储库的代码保留一个单独的目录。

我的毕业论文有一个LaTeX项目: https://github.com/jklukas/gradthesis

使用我保存在单独存储库中的样式文件(供其他人轻松使用): https://github.com/jklukas/uwthesis

我可以将uwthesis包含为子模块,但LaTeX只在主目录中查找样式文件。在LaTeX中有很多方法,比如在导入样式文件时给出显式路径,但这看起来很难看。

目前,我只是在uwthesis.sty回购中保留了gradthesis的副本。是否可以将uwthesis配置为远程,并且能够仅针对这一个文件推送更改?

2 个答案:

答案 0 :(得分:8)

您可以使用普通git submodule机制添加子模块:

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

然后从顶级目录创建一个符号链接到相应的样式文件:

ln -s uwthesis/uwthesis.sty uwthesis.sty

答案 1 :(得分:4)

如果您的问题只是

  

仅针对这一个文件推送更改

您可以将所有文件(不包括一个)添加到.gitignore,如下所示:

*
!path/to/explicit.file

并清除您当地的回购索引:

git rm -r --cached .

然后添加,提交并推送您想要的任何内容。