所以我有一个带有第三方依赖关系B的项目A,它存在于其他服务器上。
如果我将B添加为A的子模块,那么我可以使用标准子模块工作流轻松地将第三方更改为B.此外,我可以将A克隆到另一台机器,让B处于我期望的确切状态。
如果我将B添加为A的子模块并进行我自己的一组更改并提交给B,我仍然可以获得B的第三方更新。但是,如果我尝试将A克隆到另一台机器,B将结束因为我对B做出的提交不是'公开',所以状态不好。
完成第二种方案的工作流程是什么?也就是说,能够在不牺牲git的分布式特性的情况下从存储库中使用,修改和更新第三方子模块?
答案 0 :(得分:4)
叉B
。将fork作为A
的子模块包含在内。拉动上游变化是一个两步过程;将更改从B
拉入您的分叉,在A
更新您的子模块。
这也假设您的fork存储库可以被您要签出A
的任何其他计算机访问。