我有一个名为A的主要git存储库,并且我们正在使用另一个git存储库B中的源文件在我们主项目的子目录中。现在,在此使用的子目录中检出B存储库将是不错的选择。
让我来可视化一下目录结构:
+ main_repository - 主存储库的根目录 + src - 包含源代码的目录 + foreignRepo - 这应该是另一个git存储库的根目录 + binaries + other
这在远程存储库中也必须知道,只有本地副本对我没有帮助,因为其他人要检查这个并且必须能够编译所有内容。
我有一个名为A的主要git存储库,并且我们正在使用另一个git存储库B中的源文件在我们主项目的子目录中。现在,在此使用的子目录中检出B存储库将是不错的选择。
让我来可视化一下目录结构:
+ main_repository - 主存储库的根目录 + src - 包含源代码的目录 + foreignRepo - 这应该是另一个git存储库的根目录 + binaries + other
这在远程存储库中也必须知道,只有本地副本对我没有帮助,因为其他人要检查这个并且必须能够编译所有内容。
git subtree
。git subtree
优于git submodule,因为:
git subtree
不需要您的代码库的用户学习任何新知识,他们可以忽略您正在使用subtree来管理依赖项的事实git subtree
不像git submodule那样添加新的元数据文件(如.gitmodule)此外,如果需要将现有代码库的子树分离成新的代码库,可以使用git subtree split
。
2020年2月更新: 现在我更喜欢使用subrepo。
您可以在不使用子模块的情况下嵌套两个git仓库。假设ChildRepo是ParentRepo的子目录,且两者都是git仓库。
+ ParentRepo
- ChildRepo
如果您将文件添加到ChildRepo中,则ParentRepo将忽略它。当您提交时,它将被添加到ChildRepo中。不可能将ChildRepo中的文件添加到ParentRepo中。
更多信息:嵌套GIT仓库陷阱!
cd ../
和 git status
命令,但是父存储库并没有忽略新文件。 - chharveyChildRepo
放入 .gitignore
吗? - somenxavier