Git撤销修改

为什么 Git 比其他版本控制系统设计得优秀,因为 Git 跟踪并管理的是修改,而非文件。git 撤销修改分为丢弃工作区的修改和丢弃暂存区修改。

丢弃工作区的修改

git checkout -- readme.txt

一种是 readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态。另一种是 readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次 git commit 或 git add 时的状态。git checkout – file 命令中的 – 很重要,没有 --,就变成了 “切换到另一个分支” 的命令。

丢弃暂存区修改

git reset HEAD file

git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用 HEAD 时,表示最新的版本。