Git推送出现fatal: bad revision错误,求根因排查建议
排查思路与解决方案
以下是针对该Git推送错误的逐步排查建议:
检查分支追踪配置
执行git branch -vv查看本地分支的远程追踪关系。如果curDev2显示追踪的是origin/curDev2(但远程实际未创建该分支或推送后未正确关联),手动指定正确的追踪分支:git branch -u origin/test-branch curDev2后续推送时使用
git push -u origin curDev2强制建立关联。排查Git推送相关配置
执行git config --list | grep push,查看push.default、remote.pushDefault或branch.*.merge等配置是否异常。比如是否有配置指向已不存在的origin/curDev1分支,若有则通过git config --unset删除对应配置项。手动清理远程引用缓存
进入本地仓库的.git/refs/remotes/origin/目录,检查是否存在残留的curDev1或curDev2文件。如果有,直接删除这些文件,再执行git fetch --prune清理无效引用。检查自定义Git Hooks
查看.git/hooks/目录下的pre-push、post-push等钩子脚本,确认脚本中是否有引用origin/curDev1或origin/curDev2的逻辑。临时重命名钩子文件(如mv pre-push pre-push.bak)后重试推送,若错误消失则说明钩子脚本存在问题。验证Git版本与仓库完整性
- 执行
git --version,若使用的是2.10之前的旧版本,建议升级至最新稳定版后测试。 - 执行
git fsck --full检查仓库对象完整性,若发现损坏可尝试重新克隆远程仓库,迁移本地分支后再测试推送。
- 执行
内容的提问来源于stack exchange,提问作者Eric Sun
相关产品推荐
相关产品推荐

