git reset与git revert

git reset中有三个命令(--hard、--soft与--mixed);主要用于工作区、暂存区、本地仓库三个区域的文件提交撤回。

在将文件提交至远程端时,文件的提交需要经过git addgit commitgit push三个过程才能提交至git远程仓库。我们平时修改文件在工作目录中,提交时先使用git add提交至暂存区,再通过git commit提交至本地仓库,最后才能使用git push提交至GitHub。git reset的三个命令就是用于本地的文件区域撤回。

git reset --soft xxx(commit操作的哈希ID)

git reset --soft xxx 用于将文件提交至本地仓库后撤回暂存区的操作。

  • 我们先创建几个文件,并将其中的部分添加至本地仓库
    在这里插入图片描述
  • 在这里可以使用git log来查看commit的操作行为哈希ID
    在这里插入图片描述
  • 使用git reset --sofet xxx后使用git status查看暂存区文件111.md 222.md已回
    在这里插入图片描述

git reset --mixed xxx 用于将本地仓库文件撤回至工作区,具体操作参照git reset --soft

git reset --hard xxx 会将工作区、暂存区、本地仓库的所有提交的文件全都撤销(包括工作区文件,会删除)

下面我们来验证一下

  • 我们将文件 111.md,222.md,333.md 添加至暂存区并重复之前的git commit添加操作
    在这里插入图片描述

    -使用git reset --hard后可以看到在暂存区与工作区都没有了之前添加的文件
    在这里插入图片描述

    而且回收站也没有哦!

git reset是git中一个比较重要的命令,不过git reset --hard慎用哦!

git revert是一种反做命令,比如你commit提交了一个文件,如果用上的话就相当于是撤回了这个文件,但是他有一个不同的就是可以跨过已提交的版本

  • 我们在这里创建 111.md 222.md 333.md 几个文件并各自单独添加并提交
    在这里插入图片描述
  • 提交完成后我们git revert xxx提交 111.md 的版本
    在这里插入图片描述
  • 提交之后可以通过push到git上来验证是否成功
    在这里插入图片描述
  • 可看到 111.md 是未提交至GitHub上的,这也证实了之前提交的 111.md 文件被反提交,而 222.md 与 333.md 的提交并未受影响。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容