git submodule update报错

git clone 工程时,对于工程包含的子模块无法进行update
fatal: 'update-clone' is not a valid submodule--helper subcommand

img

这个错误消息表明:'update-clone' 不是一个有效的子模块帮助程序子命令。

解决方案:

尝试重新初始化子模块:
$ git submodule init

尝试更新子模块:
$ git submodule update

如果上面的步骤不能解决问题,请尝试手动更新子模块。从工程的根目录中进入该子模块的目录,并使用下面的命令更新该子模块:
$ git checkout master
$ git pull

请注意,需要使用子模块的相应分支并使用相应的拉命令,而不是使用上面的命令。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 建议你看下这篇博客👉 :git submodule update获取不到最新提交的代码
  • 除此之外, 这篇博客: git submodule update获取不到最新提交的代码中的 3.解决方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    既然git远端服务器代码已经修改过了,那么本地每次执行了git submodule update --init --recursive命令后自然需要在自工程对应的路径下执行git pull命令,执行完后服务器端的最新代码就更新到本地了。这个操作做完后再执行git submodule update命令,此时就可以看到上边说的FETCH_HEAD文件中的commit id发生了变化,已经变为当前最新的commit id了。

    zhuwsh@zhuwsh-TM1705:~/work_space/autonomousDriving/.git/modules/src/utils/dw_xxx_center$ cat FETCH_HEAD

    ab214ead574d51755f4faabad4045de6486b49c2 branch 'master' of

    https://gitlab.xxx.com/xxx/dw_xxx_center

    总结一下就是,在使用git submodule update --init --recursive获取了自工程代码后,还需要执行下面两条命令:

    git pull
    git submodule update

     


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^