2012-01-10 77 views
2

所以我有一个项目A与第三方依赖关系B,它居住在其他服务器上。修改第三方代码时Git子模块工作流程

如果我将B添加为A的子模块,则可以使用标准子模块工作流程轻松地将第三方更改更改为B.此外,我可以将A克隆到另一台机器,并使B处于我期望的确切状态。

如果我将B添加为A的子模块,并将自己的一组更改和提交给B,我仍然可以获得对B的第三方更新。但是,如果我尝试将A克隆到另一台机器,则B将结束因为我向B提交的提交文件不是“公开”的,因此处于不良状态。

完成第二种场景的好工作流程是什么?也就是说,能够在不牺牲git的分布式特性的情况下使用,修改和更新存储库中的第三方子模块?

回答

4

叉子B。将您的货叉包含为A的子模块。然后拉动上游变化是一个两步过程;将B中的更改拖到叉子中,更新A中的子模块。

这也假设你的fork存储库可以被任何你想要结账的机器访问A