如何将单个文件从另一个git存储库链接到您自己的存储库?我不想要完整的存储库,只需要一个文件。使用git submodule
似乎是正确的路线,但它想抓住整个事情。
答案 0 :(得分:28)
考虑到git的工作单元是一个存储库(或者更确切地说是存储库 content ),我认为你不能轻易地集成一个文件。
如果您不需要历史记录,可以考虑将其复制到您的仓库中
但是如果你确实需要历史记录,那么一些git filter-branch
(如“git: How to split off library from project? filter-branch, subtree?”)就是有序的。这对于一个文件来说似乎付出了很多努力。
理论上,“git: symlink/reference to a file in an external repository”提出了一个结合子模块和符号链接的解决方案 (来自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报告了in the comments:
- 当我签出主要仓库时,链接文件不是符号链接,而是文件内容为“
<reponame>/path/to/<linked_file>
”。 换句话说,git将符号链接的目标提交为文件内容- 但基本想法有效 我使用“
submodule/path/to/file
”代替“file
”并且它可以正常工作