目录
- 一、Git 查看提交历史
- Git log
- Git reflog
- 二、Git 文件修改撤销
- 1. Git 工作区撤销
- Git 撤销新增文件
- Git 撤销未提交修改
- 2. GIt 暂存区撤销
- 3. Git 提交后撤销
- Tips
一、Git 查看提交历史
Git log
通过 git log
可以查看已经提交的版本历史,这里看到的是“友好”的版本历史。git log
的参数主要包括格式化显示和过滤(时间、提交人、comment 内容等)
Git reflog
准确的说,git reflog
指令才是真正的查看版本历史的命令。通过它可以找到所有提交到版本库的历史记录,黑历史一目了然。 这个指令在恢复数据时至关重要,除了 git log
可以查看的版本外,还可以查看:
- amend 覆盖提交
- reset 过的版本
二、Git 文件修改撤销
1. Git 工作区撤销
工作区内文件要分两种:
- 新增的文件(没有交给版本库管理的文件)
- 已经交给版本库管理的文件(已经提交到版本库)
Git 撤销新增文件
git clean -f <file>
指令会将新增的文件删除,使用该指令需要注意两点:
- 文件物理删除,意味着你可能
无法找回
新增文件修改的内容 - 需要指定文件,否则会将工作区中
所有新增文件删除
。
Git 撤销未提交修改
git checkout -- <file>
:该指令使用文件在版本库中版本替换工作区版本,这意味着在工作区进行的所有修改都会丢失
!!
2. GIt 暂存区撤销
-
git reset <file>
:该指令会取消暂存,工作区中文件的修改 会保留 -
git checkout HEAD <file>
:该指令会取消暂存,并将版本库中的版本替换工作区的版本, 这意味着所有修改都将 被覆盖!!
3. Git 提交后撤销
- Git 将文件恢复到指定版本
git checkout <version> <file>
:该指令将当前版本恢复为指定的版本。 - Git 将文件从其他版本恢复到当前版本
git checkout HEAD <file>
:从版本库检出文件,覆盖工作区版本。
Tips
- 版本号可以简写:
- HEAD 当前版本,默认值,可以不写, HEAD^ 表示前一个版本。。
- 版本号不需要 40 位校验码完整写出,最少 4 位,如果与其他冲突,再增加输入。
- git 使用时要牢记:提交过的都能找回,没提交的要十分警惕:
- git clean -f : 新增文件会被删除,回收站都找不到
- git checkout: 未暂存的修改被删除