【问题标题】:git submodule update --init gives error fatal: Needed a single revision Unable to find current revision in submodule pathgit submodule update --init 给出错误致命:需要单个修订版无法在子模块路径中找到当前修订版
【发布时间】:2016-11-08 17:12:38
【问题描述】:

当我执行git submodule update --init 时出现错误

致命:需要单个修订版无法在子模块路径“插件/插件名称”中找到当前修订版。

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

【问题讨论】:

  • 我刚刚遇到了同样的问题。事实证明,git 无法与服务器通信,因为我需要接受在子模块更新期间未显示的主机密钥(但如果您进行拉取)。接受主机密钥后,一切都开始按预期工作。

标签: git jenkins


【解决方案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

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 2017-01-29
    • 2022-07-07
    • 2011-06-15
    • 2014-11-28
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多