TL;DR
改错文件先 git restore,提交错了未推送用 git reset --soft HEAD~1,已推送用 git revert;分支切换用 git switch。
撤销操作
| 场景 | 命令 |
|---|
| 丢弃工作区修改 | git restore 文件 |
| 撤销暂存 | git restore --staged 文件 |
| 修改上次提交信息 | git commit --amend |
| 回退但保留修改(未推送) | git reset --soft HEAD~1 |
| 彻底回退(未推送,危险) | git reset --hard HEAD~1 |
| 撤销已推送提交(安全) | git revert 提交号 |
分支
| 操作 | 命令 |
|---|
| 新建并切换 | git switch -c 分支名 |
| 查看分支 | git branch -a |
| 合并 | git merge 分支名 |
| 变基 | git rebase 分支名 |
| 暂存现场 | git stash / git stash pop |
提交与日志
| 操作 | 命令 |
|---|
| 暂存全部 | git add -A |
| 提交 | git commit -m "msg" |
| 简洁日志 | git log --oneline --graph -10 |
| 查看改动 | git diff / git diff --staged |
远程
| 操作 | 命令 |
|---|
| 拉取 | git pull --rebase |
| 推送 | git push |
| 强制推送(慎用) | git push --force-with-lease |
来源
- Git 官方文档(git-scm.com/doc)
最后更新:2026-08-02