git submoudle vs git subtree

先说结论:在项目模块拆分的时候,先考虑使用了 git submoudle 的方案,因为遇到一些问题,又研究了一下 git subtree 的方案,最后发现 git subtree 的成本更高,最后还是选择了 git submodule 的方案

git submodule 最初作为项目模块拆分时候的方案,在使用的过程中发现了几个问题:

  1. 同步代码比较麻烦
  2. 冲突解决起来不方便(因人而异)
  3. 有时候不确定是否应该PUSH本次的改动(主要是 new commits 的状态)
  4. 代码的重复性很高,占用硬盘(各个模块依赖的 common 和 dep 的体积很大,重复了很多次)

查询了一些相关资料之后,看到有同学提到使用 git subtree 的一种解决方案,因此在bce-console/console上面弄了一个subtree的分支尝试了一下。

首先,我们还是把 bce-console/console 作为整个项目的集合来进行管理。

阅读全部