修改第三方代码时Git子模块工作流程

时间:2012-01-10 07:50:46

标签: git git-submodules

所以我有一个带有第三方依赖关系B的项目A,它存在于其他服务器上。

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

如果我将B添加为A的子模块并进行我自己的一组更改并提交给B,我仍然可以获得B的第三方更新。但是,如果我尝试将A克隆到另一台机器,B将结束因为我对B做出的提交不是'公开',所以状态不好。

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

1 个答案:

答案 0 :(得分:4)

B。将fork作为A的子模块包含在内。拉动上游变化是一个两步过程;将更改从B拉入您的分叉,在A更新您的子模块。

这也假设您的fork存储库可以被您要签出A的任何其他计算机访问。