zoukankan      html  css  js  c++  java
  • git diff的用法

    在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<stdio.h>
    int main(int argc,char *argv[])
    {
    printf(“hello. ”);
    printf(“he was a student. ”);
    return 0;
    }


    然后git init, git add . , git commit;
    之后你将源代码修改为:

    [yaya@yaya-desktop]$ cat main.c
    #include<stdio.h>
    int main(int argc,char *argv[])
    {
    printf(“hello. ”);
    printf(“he was a student. ”);
    printf(“he was born in finland. ”);
    return 0;
    }


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

    1. [yaya@yaya-desktop]$ cat main.c
    2. #include<stdio.h>
    3. int main(int argc,char *argv[])
    4. {
    5. printf(“hello. ”);
    6. printf(“he was a student. ”);
    7. printf(“he was born in finland. ”);
    8. printf(“he is very clever! ”);
    9. return 0;
    10. }
    复制代码


    这个时候,你执行如下三个命令,仔细查看,我相信你会发现它们三个的区别的!
    $ 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 <file>…” to unstage)
    #
    #    modified:   main.c
    #
    # Changed but not updated:
    #   (use “git add <file>…” 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的用法就简单温习到这里吧。
  • 相关阅读:
    企业移动化?AppCan教你正确的打开方式
    企业该如何挑选移动平台?
    除了移动开发,一个好平台还需要具备什么功能?
    canvas绘制工作流之绘制节点
    canvas与工作流的不解之缘
    一个工作流引擎诞生前的准备工作
    欢迎大家Follow me!微软MVP罗勇(Dynamics CRM方向2015-2018年)欢迎您!
    Dynamics 365定制:在实体的列表界面添加按钮
    Dynamics 365 Customer Engagement中自定义工作流活动的调试
    Dynamics CRM 2015/2016新特性之二十七:使用Web API查询元数据
  • 原文地址:https://www.cnblogs.com/Alight/p/3571042.html
Copyright © 2011-2022 走看看