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

修复存在错误拆分提交的Git Subtree问题

Git Subtree 推送失败修复方案求助

问题背景

仓库中存在一个多年前创建的Subtree,因拆分提交存在错误,执行git subtree push时出现报错。

报错信息

git push using:  <remote>
fatal: ambiguous argument '<sha>^{commit}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
could not rev-parse split hash <sha> from commit <sha>

排查发现的异常

  • git-subtree-dir为Git前缀名称(状态正常)
  • git-subtree-split指向的哈希已不存在(状态异常)

原因推测

初始拆分操作是在未合并回主分支的分支上完成的,后续Subtree的拉取/推送操作切换到了另一分支,导致该拆分提交丢失。

不同Git版本的git-subtree push行为差异

  • Git 1.8版本:报错并删除远程仓库中待推送的分支
  • 较新版本:报错但仍执行推送操作,但遍历全仓库历史耗时极长
  • 最新Git版本:直接报错并拒绝推送

已尝试的无效操作

执行git subtree split --prefix=<prefix> --rejoin --ignore-joins重新拆分,虽生成了新的拆分记录,但执行git subtree push时仍报相同错误,推测命令仍在读取旧拆分记录。

当前求助需求

最新Git版本下完全无法执行git subtree push,考虑修改2018年旧拆分的提交信息,但对如此早期的提交进行变基风险过高,寻求安全有效的修复方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:35:27