git checkout 与 reset

最近在使用GitLab进行代码管理,在用命令行使用git的过程中遇到了一个问题,以下是本人做实验过程,希望可以将两个命令的关系整理清楚:

先是建立了一个专门用来测试的文件夹:
mkdir test_dir
进入文件夹:
cd test_dir

新建一个git管理仓库:
git init
在当前文件夹下新建一个文本进行实验:
vi git_doc
进入vi,点I进行代码插入,并写下一行字:
this is a test for git command!
按ESC键,输入冒号后,wq保存;

这个时候重点来了,我们要先把这个版本提交:
git commit -m "origin version"
接着来修改文件,再次vi进入:
vi git_doc
添加一行:
add some words for testing!
查看一下当前状态:
git status
此时显示:

这里写图片描述

可以看到现在显示的修改是红色的,指的是代码还没有被添加到暂存区(具体暂存区是什么,工作区是什么,自己去看一下吧,不解释了),那么我们现在满足你,给你放到暂存区里:
git add .
(注意上面这个点啊,是指当前目录下的所有文件!)
接下来查看:
git status
此时显示:
这里写图片描述

变绿了,有木有?

然后我们要说本篇重点了,如果这个时候你发现你新加的那一行字add some words for testing!不想要了,怎么办?
提示写的很清楚不是么,这个时候我们用:
git reset HEAD .
则可以返回到红色的那张图的状态;但是如果你是用:
git checkout -- .
则不会起任何作用;

所以我们自然是快乐的使用上面的reset啦:
git reset HEAD .
这个时候就回到了红色状态,不过这个时候你修改的文件里还是有那一行字对不对;接着因为我们状态已经变红,接下来继续:
git checkout -- .

好吧,这时我们就可以再vi打开文件看一下了,发现只剩下一行了是不是,所以,这两个命令的关系也就明了了,实验结束,本篇完。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,677评论 1 26
  • 适合一周岁宝宝的游戏,你get了吗? 楼主最近要交作业,观察幼儿游戏的五个片段,记录游戏过程中宝宝与大人的反应与互...
    兔小蝉阅读 145评论 0 0
  • 凌曜阅读 214评论 0 0
  • 在泣不成声里欢歌 在纵情欢乐里泪流 你是有什么神奇的魔法吗 能让我不饮却醉 能让我万般皆非 就让我在灯红酒绿里寡淡...
    俗人圆阅读 266评论 0 0
  • 这辈子 ,和谁过, 怎样过 ,过多久 ,有人因为爱情 ,有人因为物质 ,有人因为容貌, 有人因为前途 ,有人因为压...
    慢生活的小小孩阅读 173评论 0 0