`git子模块更新`不';t签出子模块中的提交
我遇到了以下问题:当我签出超级项目的特定提交并运行`git子模块更新`不';t签出子模块中的提交,git,Git,我遇到了以下问题:当我签出超级项目的特定提交并运行git update submodules时,子模块的提交没有签出,尽管根据手册页、internet博客帖子等,这是该命令应该执行的操作。我仍然需要手动运行git子模块来检查正确的提交 有人知道我是什么让git这么做的吗?我使用的是git 2.11.0版 工作树是干净的 manuel@manuelthinkpad:~/projects/testcompile/superproject$ git status HEAD detached at o
git update submodules
时,子模块的提交没有签出,尽管根据手册页、internet博客帖子等,这是该命令应该执行的操作。我仍然需要手动运行git子模块
来检查正确的提交
有人知道我是什么让git这么做的吗?我使用的是git 2.11.0版
工作树是干净的
manuel@manuelthinkpad:~/projects/testcompile/superproject$ git status
HEAD detached at origin/master
nothing to commit, working tree clean
已签出子模块的右提交。(其行没有前缀+
/-
)
我正在结帐超级项目的本地主管,该项目尚未推出:
manuel@manuelthinkpad:~/projects/testcompile/superproject$ git checkout master
Previous HEAD position was 4b58c94... Merge branch 'dev' into 'master'
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
现在,我想更新子模块,使其签出正确的提交:
manuel@manuelthinkpad:~/projects/testcompile/superproject$ git submodule update --recursive
Fetched in submodule path 'modules/libgksl', but it did not contain a20f22f989afbcbb620303a6b418de8093c71259. Direct fetching of that commit failed.
manuel@manuelthinkpad:~/projects/testcompile/superproject$ git submodule update modules/problematic_submodule/
Submodule path 'modules/problematic_submodule': checked out '24b46f28edf9c75bf8a7bcf4cac7aa65564c88c9'
唉,有问题的_子模块
仍然处于错误提交状态。(请注意,该行的前缀为+
)
我必须指定problemble\u子模块
,以便将其签出:
manuel@manuelthinkpad:~/projects/testcompile/superproject$ git submodule update --recursive
Fetched in submodule path 'modules/libgksl', but it did not contain a20f22f989afbcbb620303a6b418de8093c71259. Direct fetching of that commit failed.
manuel@manuelthinkpad:~/projects/testcompile/superproject$ git submodule update modules/problematic_submodule/
Submodule path 'modules/problematic_submodule': checked out '24b46f28edf9c75bf8a7bcf4cac7aa65564c88c9'
只有现在才签出了有问题的\u子模块
的正确提交。(该行不再以+
作为前缀)
git submodule update
未能签出子模块中的正确提交problem\u submodule
的原因似乎是它在无法签出子模块libgksl
所需提交时中止
manuel@manuelthinkpad:~/projects/testcompile/superproject$ git submodule update --recursive
Fetched in submodule path 'modules/libgksl', but it did not contain a20f22f989afbcbb620303a6b418de8093c71259. Direct fetching of that commit failed.
显然,这停止了整个子模块更新操作
我可以通过执行以下步骤来解决我的问题:
一,。
更改为模块/libgksl
并签出现有提交
二,。
回到超级项目,git add modules/libgksl
,然后提交
现在超级项目又恢复了健康状态。当我更改子模块的签出提交并通过添加和提交将其SHA1存储在超级项目中时,git submodule update
从现在起可以相应地更新子模块。git submodule update
未能在子模块中签出正确提交的原因似乎是,它在无法签出所需的子模块提交时中止libgksl
manuel@manuelthinkpad:~/projects/testcompile/superproject$ git submodule update --recursive
Fetched in submodule path 'modules/libgksl', but it did not contain a20f22f989afbcbb620303a6b418de8093c71259. Direct fetching of that commit failed.
显然,这停止了整个子模块更新操作
我可以通过执行以下步骤来解决我的问题:
一,。
更改为模块/libgksl
并签出现有提交
二,。
回到超级项目,git add modules/libgksl
,然后提交
现在超级项目又恢复了健康状态。当我更改子模块的签出提交并通过添加和提交将其SHA1存储在超级项目中时,git submodule update
从现在起可以相应地更新子模块。您能告诉我您发出了哪些命令来检查该git子模块中的特定提交吗?在子模块路径“modules/libgksl”中获取,但它不包含20f22f989abcbb620033a6b418de8093c71259。直接获取该提交失败
对我来说,这听起来像是一条错误消息。对于子模块modules/libgksl
,整个命令可能会因为此错误而取消?git子模块更新模块/problem_子模块
有效吗?@LethalProgrammer:我不知道你的意思。行9acb4a5d28d1ac785fce17799d58e21cc437b77d模块/有问题的_子模块(v0.19-3355-g9acb4a5d2)
没有前缀+
或-
,因此正确的提交子模块被签出。我的意思是您使用的是git checkout
?,执行此操作后,您得到了错误?@kowsky:您的假设似乎是“由于子模块模块/libgksl
的此错误,整个命令被取消”是正确的。至于git子模块更新模块/problem_子模块
是否有效的问题:这在我的第一篇文章中得到了回答。你能告诉我你给出了什么命令来检查该git子模块中的特定提交吗?在子模块路径“modules/libgksl”中获取,但它不包含20f22f989afbcbb620033a6b418de8093c71259。直接获取该提交失败
对我来说,这听起来像是一条错误消息。对于子模块modules/libgksl
,整个命令可能会因为此错误而取消?git子模块更新模块/problem_子模块
有效吗?@LethalProgrammer:我不知道你的意思。行9acb4a5d28d1ac785fce17799d58e21cc437b77d模块/有问题的_子模块(v0.19-3355-g9acb4a5d2)
没有前缀+
或-
,因此正确的提交子模块被签出。我的意思是您使用的是git checkout
?,执行此操作后,您得到了错误?@kowsky:您的假设似乎是“由于子模块模块/libgksl
的此错误,整个命令被取消”是正确的。至于git子模块更新模块/problem_子模块
是否有效的问题:这在我的第一篇文章中得到了回答。