如何在Git中执行回退?解决Git Revert时Git Bash弹窗问题
Git回退相关问题解答
1. Git中的回退操作方式
Git的回退要根据不同场景选择对应命令:
- 撤销工作区未暂存的修改:用
git restore <文件名>,要撤销所有文件就用git restore .;旧版本Git也可以用git checkout -- <文件名> - 撤销暂存区的修改(已经执行
git add但没git commit):执行git reset HEAD <文件名>,或者新版的git restore --staged <文件名> - 回退到历史提交版本(丢弃后续提交记录):
- 软回退:
git reset --soft <提交ID>,只移动HEAD指针,保留工作区和暂存区的修改,适合重新整理提交 - 混合回退(默认模式):
git reset --mixed <提交ID>,移动HEAD指针并重置暂存区,工作区修改保留 - 硬回退:
git reset --hard <提交ID>,彻底覆盖工作区和暂存区,和目标提交完全一致,此操作不可逆,谨慎使用
- 软回退:
- 撤销已推送到远程分支的提交(不破坏历史记录):用
git revert <提交ID>,会生成一个新提交抵消目标提交的修改,适合公共协作分支
2. 完成git revert弹出编辑器后的回退操作
你遇到的是Git调用默认的Vim编辑器来编辑revert的提交信息,按以下步骤操作就能完成回退:
- 进入界面后,先按
i键进入插入模式,此时可以编辑提交信息(默认已经有描述,一般无需修改) - 编辑完成后,按
Esc键回到命令模式 - 输入
:wq并回车,这是Vim的保存并退出命令,执行后Git就会完成revert操作并生成新的提交
如果不想每次执行git revert都弹出编辑器,可以修改Git的默认编辑器:
- 改成nano编辑器:
git config --global core.editor nano - 改成VS Code:
git config --global core.editor "code --wait"
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

