项目布局:
/project_a
/shared
/project_b
/shared
/shared
project_a 和 project_b 都需要包含共享文件夹。使用 svn,我们使用 svn:externalsand 效果很好,因为 svn 可以引用子目录(也可以使用相对路径)。但是,我们转移到了 git,它似乎不支持签出子目录。
我们现在的解决方案是将project_a、project_b和shared都放在不同的git repos中,并在project_a和project_b中使用git子模块。然而,这似乎比一个带有 svn:externals 的单一 svn 存储库要复杂得多。处理git中常见元素的正确方法是什么?
编辑:共识是子模块是要走的路。但是用了一天,感觉用起来很不友好。
在对共享文件进行更改后,我必须:
- 提交共享中的更改
- 推动份额变化
- 在父目录中再次添加共享目录
- 推送父目录
与 svn 中的单个提交相比,这似乎要复杂得多。缺少其中一个步骤会导致版本控制混乱。我在这里错过了什么吗?