git 撤销修改`git checkout -- readme.txt`和 git 版本回退 `git reset HEAD readme.txt`
Git管理的文件: 工作区->暂存区->仓库
git add把文件从工作区>>>>暂存区,
git commit把文件从暂存区>>>>仓库,
git diff查看工作区和暂存区差异,
git diff --cached查看暂存区和仓库差异,
git diff HEAD 查看工作区和仓库的差异,git diff HEAD -- readme.txt
注意HEAD和--都非常重要
什么是撤销修改
撤销修改有两种情况
- 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
例如,还没有git add readme.txt,此时git status会出现
On branch feature1
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
这说明从工作区修改,没有git add到暂存区,git仍然会记录,如何撤销此次修改,使用git checkout -- readme.txt
- 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
从上面可以看出,git checkout -- filename都是在同一个区域进行恢复撤销,都在工作区,或者都在暂存区,与git restore filename的功能一样
什么是版本回退
如果你已经把修改从工作区git add filename到暂存区,此时你想回到工作区,那么你需要使用git reset HEAD filename命令
浙公网安备 33010602011771号