git clone 工程时,对于工程包含的子模块无法进行update
fatal: 'update-clone' is not a valid submodule--helper subcommand
这个错误消息表明:'update-clone' 不是一个有效的子模块帮助程序子命令。
解决方案:
尝试重新初始化子模块:
$ git submodule init
尝试更新子模块:
$ git submodule update
如果上面的步骤不能解决问题,请尝试手动更新子模块。从工程的根目录中进入该子模块的目录,并使用下面的命令更新该子模块:
$ git checkout master
$ git pull
请注意,需要使用子模块的相应分支并使用相应的拉命令,而不是使用上面的命令。
不知道你这个问题是否已经解决, 如果还没有解决的话:既然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