这里是情况:
# Want this folder to be "umbrella" in order not to spawn
# a lot of github repos later on (you can consider it
# dotfiles-like repository with a lot of remotely pulled
# projects where each should be occasionally updated
# and "custom" patches applied)
mytoolbox/
.git/
proj1/
.git/
..
proj2/
.git/
..
proj3/
.git/
..
file1
file2
..
经过一番谷歌搜索后,我偶然发现了git submodule
和subtrees
。第一个似乎只是继续跟踪最后的提交和对远程的引用(.gitmodules
下没有实际内容的链接列表)。而且-经过几次尝试-如果符合我的目的,我没有第二个想法。一般而言,可能有人会建议更好的解决方案。
坦白地说,前一阵子我为此使用了Dropbox:)
答案 0 :(得分:1)
2部分答案:
git子树背后的想法是什么? git subtree的目的仅仅是在父存储库中拥有其他存储库的完整副本。基本上,这只是围绕vanilla git编写的一些脚本,因此您的其他用户将不必执行子模块命令来访问子树内容,但这实际上是相同的想法。
建议更好的解决方案?在我个人看来,与子模块相比,子树是更好的选择,这是因为它缺少额外的命令,并且它提供了简单性,但是它很容易使您陷入麻烦,例如在重新定基时。
我目前正在使用git subrepo,它与subtree的基本思想完全相同,但执行得更好,并且在避免某些不利方面方面考虑得更周到。我在重新定标时会做一些额外的脚本,尽管它们会修补指向父母的指针,所以它并不是很琐碎,但这是我发现的2018年最佳选择。