1. 基础语法
git revert -n
-
撤销指定 的改动,并保留其他提交。
-
使用 -n 表示不立即提交,允许你手动提交修改。
2. 撤销多个提交
git revert -n ..
-
撤销从 到 之间的所有提交。
-
注意:
-
使用 -n 是为了在撤销后自行提交。
-
不使用 -n 则会打开编辑器输入提交信息。
3. 处理冲突的情况
情况一:中止并恢复原样
git revert --abort
- 放弃 revert 操作,恢复到指令执行前的状态。
情况二:退出但保留变更
git revert --quit
- 保留当前变更,不继续执行 revert。
情况三:解决冲突后继续
-
修改冲突文件。
-
添加到暂存区:
git add .
- 提交变更:
git commit -m "解决冲突并完成 revert"
4. 总结:git reset vs git revert
|------------|-------------------------|------|------------|
| 命令 | 行为 | 提交记录 | 是否推荐用于公共分支 |
| git reset | 回滚到指定提交,删除之后所有提交记录 | 不保留 | 不推荐(需要强推) |
| git revert | 撤销指定提交,但保留其历史,并新建一个反向提交 | 保留 | 推荐(安全) |
-
git reset:适合个人分支清理历史,不推荐在多人协作的远程分支使用。
-
git revert:适合公共分支安全撤销变更,是更保险的做法。