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

Jef*_*kas 4 git git-submodules

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

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

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

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

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

lar*_*sks 8

您可以使用常规git submodule机制添加子模块:

git submodule add git://github.com/jklukas/uwthesis.git uwthesis
Run Code Online (Sandbox Code Playgroud)

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

ln -s uwthesis/uwthesis.sty uwthesis.sty
Run Code Online (Sandbox Code Playgroud)


rad*_*tao 5

如果你的问题只是

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

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

*
!path/to/explicit.file
Run Code Online (Sandbox Code Playgroud)

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

git rm -r --cached .
Run Code Online (Sandbox Code Playgroud)

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