从另一个git存储库链接单个文件



如何将单个文件从另一个git存储库链接到您自己的存储库?我不想要完整的存储库,只需要一个文件。使用git submodule似乎是正确的路线,但它想要抓取整个东西。

考虑到git的工作单元是一个存储库(或者更准确地说是一个存储库内容),我认为您不可能轻松地集成一个文件。

如果你不需要它的历史记录,你可以考虑简单地复制它到你的repo。
但是如果您确实需要历史记录,那么一些git filter-branch(如"git:如何从项目中分离库?")Filter-branch, subtree?")是有序的。不过,对于一个文件来说,这似乎花费了很多精力。

理论上,"git: symlink/reference to a file In a external repository"建议将子模块和symlink结合起来。
(来自Pavel Šimerda)

$ git submodule add /url/submodule/<reponame>
$ ln -s <reponame>/path/to/<linked_file>
$ git add .gitmodules <linked_file>
$ git commit -m "add a symbolic link to <linked_file> with the respective submodule"

自2011年以来(上面的原始答案),Gavriel在评论中报告说:

  • 当我签出主repo时,链接的文件不是符号链接,而是文件内容为"<reponame>/path/to/<linked_file>"。换句话说,git将符号链接的目标提交为文件内容
  • 但是基本的想法是有效的。
    我使用"submodule/path/to/file"而不是"file",它的工作

最新更新