Git:找出哪个分支包含提交并检查出来?

时间:2013-04-09 01:15:29

标签: git git-submodules

从我学到的关于子模块的here,我现在可以使用

将子模块回滚到正确的提交
git submodule update --recursive

但是,现在子模块在分支中从不(很少?)。我认为未存储子模块所需的分支。无论如何,我可以使用

git branch --contains HEAD

在子模块中找出分支然后切换到它。有内置的方法吗?我的目标是回到包含提交的分支(如果有的话)。

1 个答案:

答案 0 :(得分:1)

默认情况下,Git不会通过分支跟踪子模块,它会通过提交跟踪它们。因此git submodule update将导致子模块处于分离的HEAD状态(类似于git checkout特定的提交哈希)。在做任何工作之前,你必须确保实际检查一个分支,否则事情可能会变得混乱。

从Git 1.8.2开始,您现在可以让子模块跟踪分支。添加子模块时需要指定此选项:

git submodule add -b master <git repo url>

如果您通过分支跟踪子模块,则需要将--remote添加到更新呼叫中:

git submodule update --remote

您可以通过分支herehere了解有关跟踪子模块的详情。

相关问题