git 常用操作四 - git reset
上一节我们讲了通过 git checkout 命令,将 Modified files 撤销。
今天来讲一下 reset 命令。
通过 man git reset 可以看到这样一张图。只要理解了这张图,那么对 git reset 还有它的三个参数也就是 soft mixed hard 也就掌握了。
以第一条 --soft 简单说明一下:
左边是当前的git库里的情况:
工作区里的内容是A
暂存区的内容是B
HEAD提交中的内容是C
而希望重置回的目标提交中的内容是D
执行 git reset --soft target 之后:
工作区里的内容是A
暂存区的内容是B
HEAD提交中的内容是D
也就是说 --soft 不改变 工作区和暂缓区
同理, --mixed 不改变 工作区
大家可以结合下面这张图做一些实际操作,加深理解。
其中 HEAD 表示当前提交
HEAD^ 表示当前提交的上一个提交.
比如下图中,当前是处于 CommitB ,那么 HEAD 表示 CommitB ,而 HEAD^ 就是 CommitA.
(绿色框中 HEAD:a.txt->abc 表示的是 版本库中有一个 a.txt 文件,其内容是 abc)