Answers:
听起来您想使用Git 子模块。
Git使用子模块解决了这个问题。子模块允许您将Git存储库保留为另一个Git存储库的子目录。这使您可以将另一个存储库克隆到项目中,并使提交分开进行。
我一直使用符号链接来维护两个单独且不同的存储库。
.gitignore
?
rsync -avh --delete --exclude='.git' REPO-B/ REPO-A/REPO-B-copy/
对REPO-B进行了任何更改后都在运行
是的,您可以使用所绘制的文件层次结构完全按照您的要求进行操作。Repo-B将是独立的,并且不了解Repo-A。Repo-A将跟踪其自身文件和Repo-B的文件中的所有更改。
但是,我不建议您这样做。每次更改文件并提交到Repo-B时,您都必须提交Repo-A。在Repo-B中的分支将与Repo-A混为一谈,而在Repo-A中的分支将很奇怪(无法删除文件夹等)。子模块绝对是必经之路。
您可以使用“ git-subrepo”来实现所需的功能(该REPO-A repo包含所有文件,包括REPO-B文件夹中的文件,而不仅仅是引用):
https://github.com/ingydotnet/git-subrepo
如果您的某些贡献者未安装subrepo命令,它仍然可以工作。他们将看到完整的文件夹结构,但无法将更改提交到子仓库。