You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux命令行出现HEAD detached错误无法推送git提交该如何解决?

问题原因

Git子模块(submodule)默认绑定上游仓库的固定提交哈希,不会主动追踪分支。你在子模块内修改并提交后,提交记录会落在游离的HEAD上,没有关联到本地分支,因此无法直接推送。

解决步骤

  • 进入子模块目录,基于当前游离的HEAD创建本地功能分支:
git checkout -b <你的功能分支名>
  • 确认提交记录已同步到新分支:
git log --oneline -3

输出的最顶部记录是你刚才做的修改提交即为正常。

  • 推送分支到你fork的子模块远程仓库(如果尚未fork原submodule仓库,先fork到自己的账号下,再添加远程源):
# 未添加自己的fork远程源时先执行
git remote add my-fork <你fork后的submodule仓库地址>
# 推送分支
git push my-fork <你的功能分支名>
  • 推送完成后到原submodule仓库页面,选择刚推送的分支即可提交PR。
  • 若需要同步更新外层主仓库的子模块绑定哈希,回到主仓库根目录执行:
git add <子模块对应的目录路径>
git commit -m "update submodule to latest commit"

内容的提问来源于stack exchange,提问作者Jan klemen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:06:02