【转】在git提交环节,存在三大部分:working tree, index file, commit

这三大部分中:

working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。

index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就和working tree同步了。

commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git-commit就是将index file里的内容提交到commit中。

总结一下:

git diff:是查看working tree与index file的差别的。

git diff --cached:是查看index file与commit的差别的。

git diff HEAD:是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)

为了更加清晰的阐释这个关系,来给出一个实例。

[yaya@yaya-desktop]$ cat main.c

#include

int main(int argc,char *argv[])

{

printf(“hello.\n”);

printf(“he was a student.\n”);

return 0;

}

然后git init, git add . , git commit;

之后你将源代码修改为:

[yaya@yaya-desktop]$ cat main.c

#include

int main(int argc,char *argv[])

{

printf(“hello.\n”);

printf(“he was a student.\n”);

printf(“he was born in finland.\n”);

return 0;

}

此时你git add .,但不用执行git commit命令。然后你再将源代码改为:

[yaya@yaya-desktop]$ cat main.c

#include

int main(int argc,char *argv[])

{

printf(“hello.\n”);

printf(“he was a student.\n”);

printf(“he was born in finland.\n”);

printf(“he is very clever!\n”);

return 0;

}

复制代码

这个时候,你执行如下三个命令,仔细查看,我相信你会发现它们三个的区别的!

$ git diff

$ git diff –cached

$ git diff HEAD

讲到这里,基本上对git diff命令有了比较深入的了解了,现在你再使用git status看看输出结果,样子大概是这样:

[yaya@yaya-desktop]$ git status

# On branch master

# Changes to be committed:

#   (use “git reset HEAD …” to unstage)

#

#    modified:   main.c

#

# Changed but not updated:

#   (use “git add …” to update what will be committed)

#

#    modified:   main.c

#很明显可以知道:

Changes to be committed表示已经存在于index file里,但尚未提交。

Changed but not updated表示在working tree已经做修改,但还没有使用git add登记到index file里。

好了,对于git diff的用法就简单温习到这里吧。

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

推荐阅读更多精彩内容

  • 因为原文太长超出字数,Lesson 3 就放在另一篇文章里 How to Use Git and GitHub 标...
    赤乐君阅读 10,682评论 1 5
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 12,753评论 1 26
  • 隔壁班转来了一位190+大长腿 我很久没暗恋过一个人了 姨妈痛 我是个奇怪的女同学
    饮冰少女阅读 942评论 0 1
  • 时光如水,生命如梭。恰同学少年风华正茂,是怎样的一段美好时光啊。其实在内心深处,午夜梦回最快乐无忧的就是住校读书的...
    逆风飞翔的陀陀妈阅读 2,498评论 0 2
  • 其实早就明明白白,普通人的杂事无人感兴趣。如若是某名人、明星,他们的一举手、一投足倒是能牵动亿万人的心!一一事实就...
    姗姗来德池阅读 1,950评论 0 1