Cha*_*ang 76 git-submodules git-subtree git-slave git-repo git-subrepo
我觉得使用Git子模块对于我的开发工作流程来说有点麻烦.我听说过Git子树和Gitslave.
Set*_*son 98
哪种方式最适合您,取决于您的需求,愿望和工作流程.它们在某种意义上是半同构的,只是有些比其他任务更容易用于特定任务.
当您在超级项目的同时控制和开发子项目时,gitslave非常有用,而且当您通常希望同时标记,分支,推送,拉取等所有存储库时.gitslave从未在我知道的窗户上进行过测试.它需要perl.
当您不控制子项目或更具体地希望将子项目修复到特定修订时,即使子项目发生更改,git-submodule也会更好.git-submodule是git的标准部分,因此可以在windows上运行.
git-subtree为git的内置子树合并策略提供了一个前端.如果您希望拥有单一存储库"统一"git历史记录,那就更好了.与子树合并策略不同,将更改导出到不同的(目录)树更容易返回到原始项目,但它不像gitslave甚至git-submodule那样自动化.
repo在理论上类似于gitslave,但对于我发现的非android操作没有详细记录.它非常专注于Google Android开发模型,并且本身仅支持少量git命令(尽管您可以运行任意命令),并且有限的本机支持不支持,例如,集中式存储库可以推送和检出分支似乎相当困难.
如果您使用多个版本控制系统,kitenet的先生就是您想要使用的,但由于其最小的公分母方法,因此仅限于仅限git的超级项目.有一些方法可以运行任意命令,但它们没有很好地集成.