【问题标题】:Possible to have git track a single file from an external repo?可以让 git 从外部仓库跟踪单个文件吗?
【发布时间】:2012-05-17 04:56:40
【问题描述】:

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

我的研究生论文有一个 LaTeX 项目: https://github.com/jklukas/gradthesis

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

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

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

【问题讨论】:

  • 您可以在子模块中创建符号链接。
  • @larsks 这实际上正是我所需要的,我想。看起来 git 相当合理地处理符号链接。我会试试看。
  • @larsks 这最终成为解决问题的好方法。如果您将此作为答案发布,我会认为它是正确的。
  • 大功告成!很高兴它成功了。

标签: git git-submodules


【解决方案1】:

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

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

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

ln -s uwthesis/uwthesis.sty uwthesis.sty

【讨论】:

    【解决方案2】:

    如果你的问题只是

    只为这个文件推送更改

    您可以像这样将所有文件(不包括一个文件)添加到.gitignore

    *
    !path/to/explicit.file
    

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

    git rm -r --cached .
    

    然后添加、提交和推送任何你想要的东西。

    【讨论】:

    • 很有趣,虽然我想要一些更永久的东西,这样我就可以对 gradthesis 存储库中的 uwthesis.sty 文件进行更改,并定期将它们重新检入到 uwthesis 存储库中。使用符号链接应该会发生这种情况。
    猜你喜欢
    • 1970-01-01
    • 2013-09-06
    • 2019-02-16
    • 2015-05-03
    • 2010-10-05
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多