Git管理的是修改(第7篇)

你可能已经发现了一件神奇的事情。前面我们说,.git隐藏目录里的index文件就是暂存区,要被提交的文件首先得添加到暂存区中。但当你往暂存区里添加了很多很多,很大很大的文件时,你发现这个index文件仍然很小,远没有你想象中的那么大。在你的直觉里应该是每次都把文件复制一份添加到暂存区里才对。
然而事实并不是这样哦?

事实上,Git管理的不是你的文件,而是你的修改。你修改一次,然后使用git add命令,它就把你做的修改添加到暂存区中。什么是修改呢?比如你删除了某行文字,添加了几个字符或者创建一个新文件等等都叫做修改。

接下来你可以做一个实验
首先,往readme.md中添加一行文字:

Git is amazing!
I love Git!
And you?

现在,git add一下:

$ git add readme.md

接着,你再往readme.md中添加一行文字:

Git is amazing!
I love Git!
And you?

You like it,right?

然后git commit:

$ git commit -m "add new line"
[master 3379b71] add new line
1 file changed, 1 insertion(+)

这时你再使用git status查看一下当前工作区的状态:

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
 
        modified:   readme.md
 
no changes added to commit (use "git add" and/or "git commit -a")

Git告诉你,readme.md被修改了。但明明我刚才已经git add,然后又git commit了,怎么还会出现这种情况呢?

原因就是,你第二次修改之后,没有git add,而是直接git commit进行提交了,所以第二次的修改没有被提交,你提交的只是第一次的修改。

明白了吗?

最后再告诉你一个命令:

$ git diff HEAD -- readme.md

这个命令可以查看工作区和版本库里最新版本的区别。

如果喜欢的话,可以关注我的微博http://weibo.com/qiaoer2017

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

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,724评论 4 54
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,797评论 1 17
  • 我是一支小小的可爱的铅笔,个子细高,常常穿着厚厚的木质外套:有质朴的原木色,有深蓝色,有红色,红色,带小花的...
    熊阿丑阅读 787评论 0 0
  • “闰年春过后,山寺始花开。还有无心者,闲寻此境来。 鸟幽声忽断,茶好味重回。知住南岩久,冥心坐绿苔。” 很久以前的...
    周子尧阅读 3,006评论 26 114
  • 无需刻意安排 , 仅是偶然相逢 。 只因 , 我在人群中看见了你 。 路过的微风拂起你的长发 霓灯的光影映在你的脸...
    南风_9925阅读 589评论 4 10