如何撤销GitHub master分支已推送的最后一次commit并清除提交历史?
完全删除GitHub远程master分支已推送最后一次commit的操作步骤
前置风险提醒:该操作会直接覆盖远程master分支的提交历史,操作前请确认没有其他协作者正在基于该分支开发,避免丢失他人提交内容。建议操作前先备份当前本地master分支的代码。
- 切换到本地master分支,同步最新远程代码,确保本地和远程当前状态完全一致
执行命令:git checkout master && git pull origin master - 回滚本地分支到上一个提交,直接删除最后一次commit的所有记录和内容
执行命令:git reset --hard HEAD~1
如果需要保留最后一次提交的修改内容到本地工作区,可将--hard参数替换为--soft - 强制推送修改后的本地分支到远程,覆盖远程的提交历史
执行命令:git push origin master --force - 验证结果:访问GitHub仓库的master分支提交历史页,可确认目标提交已完全删除,无任何残留。
常见问题说明
- 如果仓库开启了master分支保护规则,GitHub默认会拦截强制推送请求,你需要先进入仓库「Settings - Branches - Branch protection rules」页面,临时关闭master分支的强制推送限制,操作完成后再按需恢复即可。
- 其他协作者如果本地还保留有已被删除的提交记录,让其执行
git fetch origin && git reset --hard origin/master即可同步最新的远程分支状态。
内容的提问来源于stack exchange,提问作者GirkovArpa
相关产品推荐
相关产品推荐

