git 回退版本 git reset(--hard、--soft)、revert命令 区别及理解

概念

工作区:

git 回退版本 git reset(--hard、--soft)、revert命令 区别及理解

如图所示我新建了一个文件 a  此时他就是处于工作区的文件

也可以将工作区理解为 未使用 git add 的文件(图中红色a)

暂存区:

git 回退版本 git reset(--hard、--soft)、revert命令 区别及理解

使用了 add 命令将工作区中的文件a提交到了暂存区

也可以将暂存区理解为已使用 git add,但未使用 git commit 的文件(图中绿色a)

git reset xxx、git reset --hard xxx、git reset --soft xxx的区别

git reset --soft     跳转到指定版本、不还原缓存区、不还原工作区。

git reset              跳转到指定版本、还原缓存区、不还原工作区。

git reset —hard  跳转到指定版本、还原缓存区、还原工作区、

我看网上有很多图文的描述,这里我就不发图了,

建议,理解工作区和暂存区。这三条命令其中一条命令亲自去试一下,既能全部理解。

 

git revert

git 回退版本 git reset(--hard、--soft)、revert命令 区别及理解

如图所示我的在版本a提交了一个文件a、版本b提交了一个文件b、版本c提交了一个版本c、版本c文件夹内容为a、b、c

现在我不想要版本b了(因为b可能是一次失误的提交,但是我想保留他之后的提交)

我希望我的文件夹内容为a、b、c(撤销某中间的某一次提交)

使用 git revert

git 回退版本 git reset(--hard、--soft)、revert命令 区别及理解

在这个过程中会提示文件冲突,不要害怕。