Eclipse上GIT插件EGIT使用手册之十二_重置功能

GIT中有三种重置功能,分别是soft、mixed、hard,区别如下:

l  Soft - 当前分支重置到指定commit记录位置,索引和工作树不变;

l  Mixed - 当前分支重置到指定commit记录位置,索引被更新,工作树不变;

l  Hard - 当前分支重置到指定commit记录位置,索引和工作树都更新。

貌似不好理解,首先要理解GIT的三个区域(工作树、索引区、仓库),可以参考文档《GIT简介》。

先做soft的测试,新建Soft.java文件,可以看到此文件未添加到索引控制

Eclipse上GIT插件EGIT使用手册之十二_重置功能

先进行一次提交,提交后在History窗口中重置此次提交,如图:

Eclipse上GIT插件EGIT使用手册之十二_重置功能

重置后查看工作树,如图

Eclipse上GIT插件EGIT使用手册之十二_重置功能

从上图可以看出,soft文件还存在,说明重置没有改变工作树,而且soft文件不是“问号”图标,说明已经添加到索引,说明索引也没有变。唯一重置的是历史记录。

然后新建Mixed.java文件,此时Mixed.java也没有添加到索引控制,然后提交。

Eclipse上GIT插件EGIT使用手册之十二_重置功能

在History窗口中重置

Eclipse上GIT插件EGIT使用手册之十二_重置功能

重置后查看工作树结果如下:

Eclipse上GIT插件EGIT使用手册之十二_重置功能

从上图可以看出,Mixed.java文件还存在,说明工作树没有改变,但是文件状态是untracked,说明索引被更新,此时文件没有添加索引控制。

最后来看hard重置,新建Hard.java文件,此时文件没有添加索引,然后提交。

Eclipse上GIT插件EGIT使用手册之十二_重置功能

在History界面重置此次提交,如图:

Eclipse上GIT插件EGIT使用手册之十二_重置功能

重置后再查看工作树,结果如下:

Eclipse上GIT插件EGIT使用手册之十二_重置功能

可以看到Hard.java文件已经不存在了,说明索引和工作树都被更新。

原文地址:https://www.cnblogs.com/yqskj/p/3070892.html