添加Git子模块时如何指定分支/标签?

伊万

git submodule add -b工作如何

在添加具有特定分支的子模块之后,新的克隆存储库(在之后git submodule update --init)将处于特定提交,而不是分支本身(git status在子模块上显示“当前不在任何分支上”)。

我无法找到任何信息.gitmodules.git/config关于子模块的分支或任何具体的承诺,它是如何与Git的数字出来?

另外,是否可以指定标签而不是分支?

我正在使用1.6.5.2版。

djacobs7

注意:Git 1.8.2增加了跟踪分支的可能性。请参阅下面的一些答案。


习惯起来有点困惑,但是子模块不在分支上。就像您说的那样,它们只是指向子模块存储库特定提交的指针。

这意味着,当其他人签出您的存储库或提取您的代码并进行git子模块更新时,该子模块将签出到该特定提交。

这对于不经常更改的子模块非常有用,因为这样项目中的每个人都可以在同一提交中拥有该子模块。

如果要将子模块移动到特定标签:

cd submodule_directory
git checkout v1.0
cd ..
git add submodule_directory
git commit -m "moved submodule to v1.0"
git push

然后,另一个想要将submodule_directory更改为该标签的开发人员执行此操作

git pull
git submodule update --init

git pull提交其子模块目录指向的更改。git submodule update实际上合并到新代码中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章