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

jopen 9年前
     <p>GIT中有三种重置功能,分别是soft、mixed、hard,区别如下:</p>    <p>l  <strong>Soft - </strong>当前分支重置到指定commit记录位置,索引和工作树不变;</p>    <p>l  <strong>Mixed - </strong>当前分支重置到指定commit记录位置,索引被更新,工作树不变;</p>    <p>l  <strong>Hard - </strong>当前分支重置到指定commit记录位置,索引和工作树都更新。</p>    <p>貌似不好理解,首先要理解GIT的三个区域(工作树、索引区、仓库),可以参考文档《GIT简介》。</p>    <p>先做soft的测试,新建Soft.java文件,可以看到此文件未添加到索引控制</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/b3bb86661607c215a695891cbb9f8acd.png" width="227" height="103" /></p>    <p>先进行一次提交,提交后在History窗口中重置此次提交,如图:</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/6aba5df5fb6a91f9efa5e5e0a3b527b1.png" width="478" height="353" /></p>    <p>重置后查看工作树,如图</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/b1fb592c233d1eee0c5a9740498290b7.png" width="258" height="107" /></p>    <p>从上图可以看出,soft文件还存在,说明重置没有改变工作树,而且soft文件不是“问号”图标,说明已经添加到索引,说明索引也没有变。唯一重置的是历史记录。</p>    <p>然后新建Mixed.java文件,此时Mixed.java也没有添加到索引控制,然后提交。</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/d2a3502c1f0a4a43756e5dfe312ec9ca.png" width="239" height="123" /></p>    <p>在History窗口中重置</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/32a866664046bace7550e2d55b6dd440.png" width="484" height="341" /></p>    <p>重置后查看工作树结果如下:</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/2626d42b2918170545f8117b80a7c084.png" width="240" height="121" /></p>    <p>从上图可以看出,Mixed.java文件还存在,说明工作树没有改变,但是文件状态是untracked,说明索引被更新,此时文件没有添加索引控制。</p>    <p>最后来看hard重置,新建Hard.java文件,此时文件没有添加索引,然后提交。</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/47669746aaa96efab130f0f3947d016e.png" width="260" height="139" /></p>    <p>在History界面重置此次提交,如图:</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/a5db0cb94802eee3566ac134caf88627.png" width="459" height="343" /></p>    <p>重置后再查看工作树,结果如下:</p>    <p><img alt="Eclipse上GIT插件EGIT使用手册之十二_重置功能 " src="https://simg.open-open.com/show/0a391d8ff90fac9662ab572ecbfccbef.png" width="248" height="123" /></p> 可以看到Hard.java文件已经不存在了,说明索引和工作树都被更新。