Git如何回退他人提交?执行git revert报错本地变更会被覆盖怎么办
Git回退他人提交操作步骤
第一步:清理本地不一致状态
你遇到的报错是因为本地存在未提交的变更,即使你未主动修改,也可能是跨系统换行符自动转换、编辑器自动修改配置、构建生成临时文件等原因导致,执行以下命令清理:
- 恢复所有已跟踪文件的修改:
git restore . - 删除所有未跟踪的文件和目录:
git clean -fd - 确认本地分支和远程最新状态同步:
git pull origin <目标分支名>
替换<目标分支名>为你要操作的分支,例如main、master
第二步:执行回退操作
执行revert命令生成回退提交:
- 回退普通提交:
git revert <目标提交ID> - 回退合并提交:
git revert -m 1 <目标合并提交ID>
回退合并提交时必须指定-m 1参数,代表以第一个父分支(即合入的目标分支)为准回退变更
若执行过程中出现冲突,手动编辑冲突文件解决后,执行
git add <冲突文件名>,再执行git revert --continue即可完成回退操作。
第三步:提交回退结果到原仓库
由于你不是仓库的正式贡献者,无法直接推送提交到原仓库,按以下两种场景选择操作:
- 仓库接受PR/MR贡献:先将仓库fork到自己的账号下,把本地生成的回退提交推送到你fork的仓库,再向原仓库对应分支提交PR/MR,等待仓库管理员审核合入
- 已获得临时推送权限:直接执行
git push origin <目标分支名>推送回退提交到原仓库即可
内容的提问来源于stack exchange,提问作者Ab Danyia
相关产品推荐
相关产品推荐

