我已通过以下命令repo1
在我的git存储库(git submodule add https://github.com/user/mod1
)中创建了一个子模块。所以在添加此命令后,我的repo现在包含sudmodule mod1
。
现在,我正在使用命令 - repo
将标记应用于我的存储库git tag -a baseline -m "tagging baseline code
。
我不确定此标记是否也会应用于子模块mod1
?当我以递归方式创建一个新的克隆并使用特定标记时,我是否会获得具有我指定的标记的所有代码(包括子模块)?
答案 0 :(得分:2)
我不确定这个标签是否也会应用于子模块mod1
根据定义的子模块
Submodules
允许将外部存储库嵌入到源树的专用子目录 中,总是指着一个特定的提交。
如果您要标记项目,标签也不会也适用于子模块。
默认情况下,新子模块将跟踪主分支的HEAD,但在更新主仓库时不会更新。
答案 1 :(得分:0)
git
通过存储子模块提交的ID(作为主存储库提交的内容的一部分)来处理子模块,该子模块在初始化子模块之后被检出。因此,通过标记,您间接地将标记与当前子模块提交ID相关联 - 在主存储库的上下文中,您不会将实际标记添加到子模块。