我正在GitHub上的一个开源项目。
它有一个/ vendor子目录,在其中有几个外部库的副本。项目的原始维护者有时会使用外部库的较新副本来更新此目录。
一位开发商送我的想法拉请求更换该副本由git的子模块。
我正在考虑这是否是个好主意。
Git子模块的优点:
- 子模块是为类似情况专门设计的
- 它消除了意外提交给供应商的可能性,该可能性在下次更新时将被覆盖
Git子模块的缺点:
- 看起来git子模块将复杂性从维护人员推向了要克隆/拉动项目的人员(克隆开始使用项目后需要执行的其他步骤:“ git submodule init”,“ git submodule update”
您对此有何看法?
还有一件事。这个问题是相当小的库,具有非常有限的外部依赖性。我认为目前任何构建工具都不过分。
git clone --recursive
然后不必执行子模块命令。没有其他人提到过这个花招。我认识的大多数拥有子模块的人都在README中做广告。