如何撤销已推送到GitHub仓库的错误文件提交?
撤销已推送到GitHub的错误文件提交并替换为正确文件
下面两种方法可以帮你快速处理,不用手动删除错误文件后重复提交:
方法一:修改最近一次推送的提交(适合私人分支)
如果错误文件在最后一次推送的提交里,直接修改历史提交是最简便的方式:
- 撤销本地最后一次提交,但保留所有文件改动(包括你要保留的正确文件):
git reset --soft HEAD~1 - 移除错误文件的追踪(想保留本地文件就加
--cached,要彻底删除本地文件就去掉):git rm --cached 错误文件名 # 或者彻底删除:git rm 错误文件名 - 添加正确文件到暂存区,重新提交:
git add 正确文件名 git commit -m "替换错误文件为正确版本" - 强制推送到GitHub(因为修改了历史提交,需要覆盖远程分支):
git push -f origin 你的分支名
方法二:创建反向提交(适合公共协作分支)
如果错误文件在更早的提交里,或者分支有其他协作者,不要修改历史,用新提交来撤销错误:
- 用
git log找到包含错误文件的提交哈希值(比如abc123) - 恢复错误文件到提交前的状态(或直接删除错误文件),再添加正确文件:
# 恢复错误文件到提交前的版本 git checkout abc123^ -- 错误文件名 # 删除错误文件(如果不需要保留) git rm 错误文件名 # 添加正确文件 git add 正确文件名 - 提交修改并正常推送:
git commit -m "移除错误文件,更新为正确版本" git push origin 你的分支名
注意:公共分支尽量用方法二,强制推送会覆盖远程历史,可能导致其他协作者的本地仓库冲突;私人分支可以放心用方法一,步骤更简洁。
内容的提问来源于stack exchange,提问作者Jerry Borges Jacob
相关产品推荐
相关产品推荐

