git log --oneline不显示最近提交 git revert报错bad revision怎么办
报错原因
你在GitHub网页端执行删除操作生成的提交仅存在于远程分支,本地仓库未同步最新的远程提交记录,因此本地既查不到对应提交哈希,也识别不了GitHub上复制的提交ID,就会触发fatal: bad revision类报错。
解决方法
方案1:保留提交历史(推荐,适合多人协作的分支)
- 先切换到你提交PR对应的本地分支:
git checkout <你的本地功能分支名> - 同步远程分支的最新提交到本地:
git pull origin <你的远程功能分支名>同步完成后执行
git log --oneline即可看到网页端删除文件生成的提交记录,本地也能识别对应提交哈希 - 执行回退命令撤回删除操作:
git revert 738bd6a --no-edit - 将本地生成的回退提交推送到远程:
git push origin <你的远程功能分支名>
推送完成后PR会自动更新,被误删的news/reddit.py就会恢复,无需关闭重提PR。
方案2:清理提交历史(适合个人单独开发的分支)
如果不想在提交历史中保留「删除文件+回退删除」两条冗余提交,可以用变基操作直接抹除删除提交:
- 同步完远程最新代码后,执行交互式变基:
git rebase -i HEAD~2 - 在弹出的编辑界面中,将删除文件对应的提交前的
pick改为drop,保存退出 - 强制推送修改后的分支到远程:
git push origin <你的远程功能分支名> -f
操作完成后PR中不会留下任何误删文件的相关记录,提交历史更整洁。
内容的提问来源于stack exchange,提问作者nick_rinaldi
相关产品推荐
相关产品推荐

