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命令

Reference

撤销修改

posted @ 2024-03-07 16:00  光辉233  阅读(42)  评论(0)    收藏  举报