我读了很多关于 git 子模块应该有多糟糕的文章,但我不确定这是否只是那些认为它有限制的人的呻吟,或者它是否有严重的问题(尤其是关于我的用例)。
我只想像这样在我的回购中包含不同的回购
website/
libs/
js/
fs-slides [external]
fs-dialog [external]
并且必须有可能轻松更新这些存储库。据我了解,从回购中只包含一个文件并不容易,对吧?(但没关系。)
我应该为此使用子模块吗?
或者它有什么问题吗?还是子树更容易?
我读了很多关于 git 子模块应该有多糟糕的文章,但我不确定这是否只是那些认为它有限制的人的呻吟,或者它是否有严重的问题(尤其是关于我的用例)。
我只想像这样在我的回购中包含不同的回购
website/
libs/
js/
fs-slides [external]
fs-dialog [external]
并且必须有可能轻松更新这些存储库。据我了解,从回购中只包含一个文件并不容易,对吧?(但没关系。)
我应该为此使用子模块吗?
或者它有什么问题吗?还是子树更容易?
子模块非常适合您的情况,尤其是因为您不介意将这些子存储库包含在它们自己的子目录中。
使用子模块可能遇到的主要严重问题是在进行更新时更新它们,如“ git submodule 究竟是如何工作的”中所述:
如果您在子模块中进行提交时忘记设置分支,则所述提交将在分离的 HEAD 上进行,并且正在进行的更改将在下一次丢失(如果为您的子模块 repo 激活,您git submodule update可以通过reflog)。
然后,正如迈克尔 评论和我在上面的链接中详述的那样,您需要在提交之前将子模块推送到它自己的上游并推送父仓库(以避免推送取消发布子模块提交)