git - git子模块分支是否与主项目的分支一起切换?

标签 git git-branch git-submodules

最近我开始了解 git 子模块。它们似乎是具有自己的 git 结构和分支的自给自足的项目。

当我切换主项目的分支时,是否也会切换子模块的分支? git 是如何处理这种情况的?

最佳答案

我最近遇到了 a similar question . (我会让你阅读这个答案的内容,因为它为你提供了我的答案的背景)。

一个子模块只是一个 repo 的引用和这个 repo 中的一个提交。
当您切换分支时,引用可能会改变(如果您要切换到的分支使用不同的引用)但子移动的文件系统将保持不变。
因此,编写 git status 将产生一个结果,表明您的子模块状态与当前 HEAD 中的状态不同。

要使子模块指向 HEAD 的正确提交,只需调用:

$ git submodule update 

此外,您的子模块的分支对于封闭的仓库来说并不重要,因为引用总是被添加到提交而不是分支。因此,子模块中的分支只会反射(reflect)子模块的分支策略,不需要与封闭存储库的分支策略相匹配。

关于git - git子模块分支是否与主项目的分支一起切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40219209/

相关文章:

Git Bash 打开命令窗口

java - JGit:传输异常 - 拒绝 HostKey:bitbucket.org

linux - Git、Gitolite、部署和 Linux 权限

git - 了解 Git rebase

git - tf402455 当我删除功能分支时

带有空子模块文件夹的 GitHub zip 下载

eclipse - 如何防止 Eclipse 搜索在 .git 目录中查找?

git - 将 git rm -f <file> 从另一个分支中删除文件

git - 将 git 管理的子目录切换到子模块

c++ - 从 github 编译 c++ boost 库时出错