git子模块更新--init给出错误致命:需要单个修订无法在子模块路径中找到当前修订

Bip*_*was 10 git jenkins

当我执行时,git submodule update --init我得到错误

致命:需要单个版本无法在子模块路径'plugins/pluginname'中找到当前版本.

实际上我试图运行Jenkins Job来部署它.我在Jenkins中添加了递归更新子模块作为附加行为.致命:命令"git.exe submodule update --init --recursive"返回状态代码-1:这只发生在我的本地,因为同一命令正在为其他人工作.

d33*_*tah 9

这是一个隐藏的实际错误的示例,这是 Git 典型的用户体验陷阱。

就我而言,真正的错误是我使用的子模块固定到不再存在的分支(例如,已经通过 Gitlab 合并和删除的功能分支)。验证您是否也是这种情况,如果是,请将子模块指向新分支。

  • 这发生在我们身上,因为我们的分支名称从“master”更改为“main”,而“master”不存在 (2认同)

Fre*_*red 7

我尝试了许多其他建议但不起作用,但对我有用的命令是:

git submodule sync
git submodule update --init
Run Code Online (Sandbox Code Playgroud)


Fra*_*con 6

尝试 git submodule foreach git pull

  • 这个命令解锁了一些东西。在那之后,我能够很好地更新子模块。`git submodule foreach git pull origin master` (8认同)
  • 请提供更多有关该命令的功能,您正在回答的问题以及它如何回答该问题的注释。 (2认同)
  • @EricLeschinski我愿意,但它就像魔术一样工作,不知道解锁进程的根本原因。 (2认同)