所以我有一个项目 A ,其第三方依赖项 B 位于其他服务器上。
如果我将 B 添加为 A 的子模块,那么我可以使用标准子模块工作流程轻松获取对 B 的第三方更改。此外,我可以将 A 克隆到另一台计算机,并使 B 处于我期望的确切状态。
如果我将 B 添加为 A 的子模块并进行自己的一组更改并提交给 B,我仍然可以获得 B 的第三方更新。但是,如果我尝试将 A 克隆到另一台计算机,B 最终会失败由于我对 B 所做的提交不是“公开的”,因此状态很糟糕。
完成第二个场景的良好工作流程是什么?也就是说,能够在不牺牲 git 分布式特性的情况下使用、修改和更新存储库中的第三方子模块?
最佳答案
fork B
。将您的 fork 包含为 A
的子模块。向上游 pull 更改是一个两步过程;将更改从 B
pull 入您的分支,更新 A
中的子模块。
这还假设您的 fork 存储库可以被您想要 checkout A
的任何其他计算机访问。
关于修改第三方代码时的 Git 子模块工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8800068/