我有一个包含大量源文件的git存储库.我想创建一个新的存储库,其中现有存储库中的一些文件被引用到新存储库中.
例:
存储库A包含:
在Repository BI中,想要从Repository A引用源文件3:
存储库B将在没有访问存储库A的开发人员之间共享.
所以我的问题是:是否可以将一些文件从一个存储库引用到另一个存储库,这样当有权访问存储库A的开发人员更改原始文件时,存储库B会发现这些更改?如果有可能,我该怎么办?
Git 将文件视为整个存储库的内容,而不是文件的集合。因此,这是很难做到的。如果此功能很重要,我建议您切换到以文件为中心的 SCM 系统。
然而这是可能的,但相当笨拙。
使用您要跟踪的文件在存储库 B 中创建一个孤立分支。将此文件合并到存储库 B 中的其他分支,例如主分支,可以使用子树合并算法。
您可以使用 gitolite 限制对您的存储库中的一个分支的访问。现在,您可以将存储库 B 添加到存储库 A 作为子模块或作为远程模块并进行子树合并。(您可以在 git-scm.com 上阅读有关如何处理子模块和子树合并的更多信息)。
但是,您不能使用 gitolite 拒绝从整个存储库 B 读取,而只能拒绝写入访问。如果您也在寻找读取预防,则需要将该文件放入存储库 C 中