git标签是否在子模块上递归工作?

时间:2016-03-28 07:23:50

标签: git github git-submodules

我已通过以下命令repo1在我的git存储库(git submodule add https://github.com/user/mod1)中创建了一个子模块。所以在添加此命令后,我的repo现在包含sudmodule mod1

现在,我正在使用命令 - repo将标记应用于我的存储库git tag -a baseline -m "tagging baseline code

我不确定此标记是否也会应用于子模块mod1?当我以递归方式创建一个新的克隆并使用特定标记时,我是否会获得具有我指定的标记的所有代码(包括子模块)?

2 个答案:

答案 0 :(得分:2)

  

我不确定这个标签是否也会应用于子模块mod1

根据定义的子模块

  

Submodules 允许将外部存储库嵌入到源树的专用子目录 中,总是指着一个特定的提交。

如果您要标记项目,标签也不会也适用于子模块。

默认情况下,新子模块将跟踪主分支的HEAD,但在更新主仓库时不会更新。

答案 1 :(得分:0)

git通过存储子模块提交的ID(作为主存储库提交的内容的一部分)来处理子模块,该子模块在初始化子模块之后被检出。因此,通过标记,您间接地将标记与当前子模块提交ID相关联 - 在主存储库的上下文中,您不会将实际标记添加到子模块。