git submodule update --init 给出错误致命:需要单个修订版无法在子模块路径中找到当前修订版
Posted
技术标签:
【中文标题】git submodule update --init 给出错误致命:需要单个修订版无法在子模块路径中找到当前修订版【英文标题】:git submodule update --init gives error fatal: Needed a single revision Unable to find current revision in submodule path 【发布时间】:2016-11-08 17:12:38 【问题描述】:当我执行git submodule update --init
时出现错误
致命:需要单个修订版无法在子模块路径“插件/插件名称”中找到当前修订版。
实际上,我正在尝试运行 Jenkins Job 来部署它。我在 Jenkins 中添加了递归更新子模块作为附加行为。致命:命令“git.exe submodule update --init --recursive”返回状态代码-1:这仅在我的本地发生,因为相同的命令对其他人有效。
【问题讨论】:
我刚刚遇到了同样的问题。事实证明,git 无法与服务器通信,因为我需要接受在子模块更新期间未显示的主机密钥(但如果您进行拉取)。接受主机密钥后,一切都开始按预期工作。 【参考方案1】:试试git submodule foreach git pull
【讨论】:
请提供更多关于此命令的作用、您要回答的问题以及它如何回答该问题的评论。 这个命令解锁了一些东西。之后我就可以更新子模块了。git submodule foreach git pull origin master
【参考方案2】:
这是 Git 中隐藏的实际错误的示例,这是 Git 的典型 UX 陷阱。
在我的情况下,真正的错误是我使用了一个固定到不再存在的分支的子模块(例如,已经通过 Gitlab 合并和删除的功能分支)。验证您是否也是这种情况,如果是,请将子模块指向一个新分支。
【讨论】:
但是我必须为许多子模块这样做,这是很多工作。我猜子模块仍处于 alpha 版本。问题太多了。【参考方案3】:我尝试了许多其他不起作用的建议,但对我有用的命令是:
git submodule sync
git submodule update --init
【讨论】:
以上是关于git submodule update --init 给出错误致命:需要单个修订版无法在子模块路径中找到当前修订版的主要内容,如果未能解决你的问题,请参考以下文章
git submodule update --init --recursive
git submodule update 致命错误:引用不是树
git submodule update时Permission denied 错误解决