Git文件diff

2019-02-26  本文已影响0人  shz_Minato

概述

 Git的diff用于对比查看两个文件的不同。
 Git的diff内容如下:
  查看暂存区和工作区文件对比
  查看某次提交仓库和工作区文件对比
  查看某次提交和暂存区文件对比

对比暂存区和工作区(git diff)

新建文件,并编辑内容
使用vi aa新建文件,并插入内容 插入Hello World。
使用 git add aa 将文件存入暂存区
此时在 vi aa 修改文件 插入Hello Java

此时暂存区已经和工作区不同了 
    暂存区只有一行Hello World 
    工作区有两行 Hello World   和 Hello Java

此时git diff 命令 控制台输出

    diff --git a/aa b/aa   //比较的是aa文件   源是暂存区  目标是 工作区
    index 557db03..3fbbfe5 100644
    --- a/aa //-表示 源文件
    +++ b/aa //+表示 目标文件
    @@ -1 +1,2 @@  //-1的含义:-表示源,1表示只有1行。+1,2的含义:+表示目标文件,1表示第一行,2表示有两行
     Hello World //前面是空格 表示两个文件共有部分
    +Hello Java //前面是+ 表示是目标文件中有的部分,+表示源文件加上这一行 就是目标文件
    
    此处的含义:
        源文件是暂存区,目标文件是工作区
        暂存区只有一行Hello World 
        工作区有两行 Hello World   和 Hello Java
        
        源文件+上Hello Java就是目标文件了

对比某次提交和工作区(git diff commit_id)

某次提交可以用 commit的id指代,HEAD表示最新的提交
首先clean git
当前最新提交的文件内容是两行 Hello World和Hello Java
此时vi aa 修改文件内容 添加一行 Hello Kotlin

此时 工作区就有三行  最新的提交是两行

使用git diff HEAD 查看最新提交与工作区的对比
控制台输出
    diff --git a/aa b/aa  //比较的文件
    index 3fbbfe5..7f2061b 100644 
    --- a/aa //表示源  此处是已提交
    +++ b/aa //表示目标文件  此处是工作区
    @@ -1,2 +1,3 @@ //-1,2的含义:-表示源文件,1表示开头行,2表示有两行  +1,3的含义:+表示目标文件,1表示开头行,3表示有三行
    Hello World //前面是空格,表示两个文件共有的部分
    Hello Java //前面是空格,表示两个文件共有的部分
   +Hello Kotlin //前面是+,表示目标文件中 独有 的部分,表示源文件加上这一行 就是目标文件

对比某次提交和暂存区(git diff --cached commit_id)

某次提交可以用 commit的id指代,HEAD表示最新的提交
首先clean git

当前最新的提交有三行
    Hello World
    Hello Java
    Hello Kotlin

vi 修改内容,添加一行 Hello Android
提交文件至暂存区

当前暂存区有四行
    Hello World
    Hello Java
    Hello Kotlin
    Hello Android

此时git diff --cached HEAD
控制台输出
    diff --git a/aa b/aa
    index 7f2061b..b34cf01 100644
    --- a/aa
    +++ b/aa
    @@ -1,3 +1,4 @@
    Hello World
    Hello Java
    Hello Kotlin
   +Hello Android //表示源文件 增加这一行就是目标文件,这一行是目标文件独有的
   
   某次提交是 源文件
   暂存区是   目标文件


上一篇下一篇

猜你喜欢

热点阅读