在阅读这篇博文之前,请关注上一篇我的关于 git diff 命令的详细说明,只有这样才能对 git reset 的命令有详细的感悟;
先了解一下,git reset 到底什么吧;
版本控制系统的一个重要任务就是提供撤销和恢复某一阶段工作的功能。
git-reset 命令就是为这样的任务而准备的,它可以将项目当前版本定位到之前提交
的任何版本中。
git-reset 命令有三个选项:--mixed 、 --soft 和 --hard 。我们在日常使用
中仅使用前两个选项;第三个选项由于杀伤力太大,容易损坏项目仓库,需谨慎使
用。
--mixed 是 git-reset 的默认选项,它的作用是重置索引内容,将其定位到指定
的项目版本,而不改变你的工作树中的所有内容,只是提示你有哪些文件还未更新。
--soft 选项既不触动索引的位置,也不改变工作树中的任何内容,但是会要求
它们处于一个良好的次序之内。该选项会保留你在工作树中的所有更新并使之处于
待提交状态。
上面是介绍:
简单来说, git reset 就是重置内容;
-mixed 是重置索引内容;下面是其测试:
dzfdeiMac:git xuyaowen$ cat git.txt -- 打印出测试材料的内容
这是第一个文件,用于远程与github 同步!
这是这是第二次修改!
这是--mixed 的测试添加的数据
dzfdeiMac:git xuyaowen$ nano git.txt -- 进行修改测试材料的内容
dzfdeiMac:git xuyaowen$ git diff--显示工作树与索引表之间的区别
diff --git a/git.txt b/git.txt
index aac3d8a..82ada7f 100644
--- a/git.txt
+++ b/git.txt
@@ -1,3 +1,4 @@
这是第一个文件,用于远程与github 同步!
这是这是第二次修改!
这是--mixed 的测试添加的数据
+这是--mixed 的测试数据
dzfdeiMac:git xuyaowen$ git diff --cached-- 显示索引表内容与代码库之间的区别,发现没有区别
dzfdeiMac:git xuyaowen$ git add .--把当前的内容添加到索引表
dzfdeiMac:git xuyaowen$ git diff--比较此时索引表的内容与代码树之间的差别,没差别
dzfdeiMac:git xuyaowen$ git diff --cached--比较索引表中的内容与代码库之间的差别,说明,索引表已经得到更新了;
diff --git a/git.txt b/git.txt
index aac3d8a..82ada7f 100644
--- a/git.txt
+++ b/git.txt
@@ -1,3 +1,4 @@
这是第一个文件,用于远程与github 同步!
这是这是第二次修改!
这是--mixed 的测试添加的数据
+这是--mixed 的测试数据
dzfdeiMac:git xuyaowen$ git reset --mixed --使用 --mixed 重置索引表中的内容
Unstaged changes after reset:
M git.txt
dzfdeiMac:git xuyaowen$ git diff比较索引表与工作树的内容,发现又出现差异;
diff --git a/git.txt b/git.txt
index aac3d8a..82ada7f 100644
--- a/git.txt
+++ b/git.txt
@@ -1,3 +1,4 @@
这是第一个文件,用于远程与github 同步!
这是这是第二次修改!
这是--mixed 的测试添加的数据
+这是--mixed 的测试数据
dzfdeiMac:git xuyaowen$ git diff --cached比较索引表与代码库之间的差异,发现已经消失,说明索引表之中的内容回到了之前;
//同理可以验证, git reset --soft 的效果的情况,注意能力,提高自己;
请关注, 小红旗 ,博客地址是:http://blog.csdn.net/happylaoxu 点我直接访问:小红旗的博客,点我:http://blog.csdn.net/happylaoxu
请继续关注,后续的对于 git 的讲解;
git使用说明之中关于 git reset 的使用方法,和其主要插件的用法;
原文地址:http://blog.csdn.net/happylaoxu/article/details/45443703