从我学到的关于子模块的here,我现在可以使用
将子模块回滚到正确的提交git submodule update --recursive
但是,现在子模块在分支中从不(很少?)。我认为未存储子模块所需的分支。无论如何,我可以使用
git branch --contains HEAD
在子模块中找出分支然后切换到它。有内置的方法吗?我的目标是回到包含提交的分支(如果有的话)。
答案 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