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

Git subtree push失败提示未知修订版本,缺失git-subtree-split提交如何解决

报错原因

git subtree推送时依赖历史执行拆分操作生成的git-subtree-split类型提交记录匹配子仓库历史,该记录丢失通常是因为对主仓库做了变基、提交回滚、git垃圾回收清理了松散对象导致的,找不到对应哈希就会触发本次报错。

解决方案

方案1:快速绕过报错完成推送

无需找回历史提交,给推送命令加上--ignore-joins参数,强制重新拆分当前指定前缀目录的所有提交,生成新的拆分记录即可完成推送:

git subtree push --ignore-joins --prefix themes/natra https://github.com/OpenSID/tema-natra.git premium

注:首次加该参数执行耗时会稍长,因为需要全量扫描主仓库历史中与该前缀目录相关的提交,推送完成后新的拆分记录会自动存入主仓库,后续再执行subtree操作无需再加该参数。

方案2:补全拆分记录永久修复

如果需要保留历史拆分逻辑避免后续每次全量扫描,可以手动执行拆分操作补回记录:

  • 执行split命令生成分支并回填拆分记录
git subtree split --prefix themes/natra --rejoin --branch temp_natra_split
  • 待命令执行完成后,再运行原本的推送命令即可正常执行
  • 清理临时分支
git branch -D temp_natra_split

使用建议

  • 尽量不要对包含git-subtree-split记录的提交历史执行变基、squash合并操作,避免拆分记录丢失
  • 若需要频繁操作子仓库,建议先将子仓库地址添加为远程源简化命令:
git remote add tema-natra https://github.com/OpenSID/tema-natra.git
# 后续推送可直接执行简化命令
git subtree push --prefix themes/natra tema-natra premium

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:27:01