撤销与恢复 Pro Git · 2.4 / 7.6
| 命令 | 说明 |
|---|---|
git restore <文件> | 丢弃工作区未暂存改动(不可恢复,慎用) |
git restore --staged <文件> | 移出暂存区(保留改动) |
git restore --source=<提交> <文件> | 把文件恢复成某次提交时的内容 |
git commit --amend | 修补最后一次提交(改信息 / 补文件) |
git revert <提交> | 生成反向提交撤销历史提交(已推送时用这个) |
git clean -n | 预览将被删除的未跟踪文件(-fd 才真删) |
git checkout <提交> -- <文件> | 传统写法:从历史提交取出文件到工作区和暂存区 |
git reset <文件> | 默认 mixed 模式的单文件版:把文件移出暂存区 |
git revert --no-commit <提交> | 撤销但不立即提交,可连续撤销多个后一并提交 |
git clean -x -d -n | 深度清理预览:连被忽略的文件、空目录一起列出 |
| reset 模式 | HEAD | 暂存区 | 工作区 | 典型用途 |
|---|---|---|---|---|
git reset --soft HEAD~1 | 回退 | 保留 | 保留 | 撤销提交,重新组织后再提 |
git reset --mixed HEAD~1(默认) | 回退 | 清空 | 保留 | 撤销提交,重新选择要暂存的内容 |
git reset --hard HEAD~1 | 回退 | 清空 | 丢弃 | 彻底回到上一提交(危险) |
注意:已推送的共享提交用
git revert 撤销,不要用 reset 改写历史。