我有 git 项目,它们共享一个公共库作为 git 子模块。当我对项目进行任何更改时,我总是创建一个 git 分支来完成我的工作。在测试并给出另一组眼睛之后,我将分支合并回 master,它随时可以部署。
有时我还需要对子模块库进行更改。最好的做法是先分支主项目,然后进入子模块并分支它吗?我意识到我需要在使用的其他项目中测试修改后的子模块分支。有没有不同的方法可以做到这一点?
我有 git 项目,它们共享一个公共库作为 git 子模块。当我对项目进行任何更改时,我总是创建一个 git 分支来完成我的工作。在测试并给出另一组眼睛之后,我将分支合并回 master,它随时可以部署。
有时我还需要对子模块库进行更改。最好的做法是先分支主项目,然后进入子模块并分支它吗?我意识到我需要在使用的其他项目中测试修改后的子模块分支。有没有不同的方法可以做到这一点?
分支或不分支子模块,这是个问题,但这完全取决于你。如果您的子模块是一个库,并且其他项目正在使用它,那么它必须保持向后兼容。你可以修复它,但不要碰它的 API。但 lib 修复实际上属于 lib 的 master 分支。因此,当您分支主项目时,我看不到自动分支子模块的理由。
从技术上讲,重要的是:如果您同时修改和提交子模块和主项目,请先推送子模块,然后再推送主项目。没有递归推送之类的东西。
git 子模块本身就是一个项目。因此,分支子模块的策略由与所有分支决策相同的考虑因素定义。子模块会有并发开发吗?您是否想在不污染 master 历史的情况下回退更改?是的,测试也可能是一个考虑因素,但它应该是子模块的目标,它可以在其他项目中正确重用。
我有几个使用共享子模块的项目,它在处理多分支主项目时进行了扩展。我很少看到需要分支子模块。但有时当然有。