git revert 参考
git revert 会创建一个新提交,用来反向撤销指定提交带来的改动。它不改写已有历史,适合处理已经推送到远程的提交。
语法
git revert <commit>
示例
撤销最近一次提交:
git revert HEAD
撤销指定提交:
git revert abc1234
只生成改动,不自动提交:
git revert --no-commit abc1234
reset 和 revert 怎么选
| 场景 | 推荐 |
|---|---|
| 本地提交未推送 | git reset |
| 提交已经推送到共享分支 | git revert |
| 要保留完整历史 | git revert |
| 要整理本地历史 | git reset 或 git rebase -i |
常见错误
- revert 后以为原提交消失了;实际上历史中会保留原提交和新的反向提交。
- revert merge commit 时没有理解主线父提交,可能需要
-m参数。 - 连续 revert 多个提交时不看冲突,容易产生半完成状态。
相关内容
相关内容
- git rebase 参考 git rebase Reference,整理变基、交互式 rebase、合并提交、rebase --continue、--abort、风险和常见错误。
- git reflog 参考 git reflog Reference,整理 HEAD 移动记录、找回丢失提交、reset 恢复、rebase 后恢复和常见错误。
- git remote 参考 git remote Reference,整理查看、添加、修改、删除远程仓库,origin、set-url、remote -v、remote show 和常见错...
- git reset 参考 git reset Reference,整理 --soft、--mixed、--hard、HEAD~1、撤销本地提交、取消暂存、风险和恢复建议。
- git stash 参考 git stash Reference,整理临时保存改动、stash push、list、show、apply、pop、drop、include-untrack...