[图解git] git reset 的三种模式

git reset 是恢复到某次 commit 记录的命令,有三种常用模式:

  • mixed(默认模式),get reset
  • soft get reset --soft
  • hard get reset --hard

现在假设我们有 foo.txt 文件,里面只有一个字符 1 ,已经把他放进版本库中:

[图解git] git reset 的三种模式_第1张图片
foo.txt

然后修改 foo.txt ,在里面添加一个字符 2 ,放进版本库:

[图解git] git reset 的三种模式_第2张图片
foo2.txt.png

此时使用 reset 命令的任何一种模式恢复到 d855a71d5 都会将 7a39fa077 记录抹去,回到 d855a71d5

三者的区别在于 7a39fa077 抹去以后,工作区和暂存区的情况:

  • mixed 模式在回到 d855a71d5 之后,之前修改的记录在工作区
  • soft 模式在回到 d855a71d5 之后,之前修改的记录还在暂存区,可以直接 commit 到版本库中
  • hard 模式最彻底,彻底恢复 d855a71d5 ,之前修改的记录全部丢失
[图解git] git reset 的三种模式_第3张图片

git reset 是最重用的 git 命令,需要好好理解。

你可能感兴趣的:([图解git] git reset 的三种模式)