如何在保持深度为 1 的同时在标签中初始化子模块

How to init a submodule in a tag while keeping the depth at 1

对于正常的 git 回购,您可以这样做:

git clone --branch 4.1.1 https://github.com/WordPress/WordPress.git . --depth 1

这将在标签 4.1.1

处提供 WP 存储库

对于一个子模块,我确实得到了下面的信息,但我不知道如何只用一个标签。

git submodule add --depth 1  https://github.com/WordPress/WordPress.git wp

如何在 1 深度 将子模块检出到 1 标签

我不介意之后再执行几个命令,但如果可能的话,一个命令就更好了。

TLDR: 我想要一个标签处的子模块。哪个.git(/module)文件夹越小越好。

考虑到子模块可能不附带其标签,您可能会想先做(如“Can git submodule update be made to fetch tags in submodules?”中的建议):

git submodule foreach --recursive 'git fetch --tags'

但正如我在“Does “git fetch --tags” include “git fetch”?”中解释的那样,那 不会 获取 只是 标签,而且 所有 相关提交(自 git 1.9.0,2014 年 2 月起)

相反,您可以进入子模块,并获取深度为 1 的标签内容:

git fetch --depth=1 origin refs/tags/<tag>:refs/tags/<tag>
git checkout <tag>