Git文件diff

概述

?Git的diff用于對比查看兩個文件的不同。
?Git的diff內(nèi)容如下:
??查看暫存區(qū)和工作區(qū)文件對比
??查看某次提交倉庫和工作區(qū)文件對比
??查看某次提交和暫存區(qū)文件對比

對比暫存區(qū)和工作區(qū)(git diff)

新建文件,并編輯內(nèi)容
使用vi aa新建文件,并插入內(nèi)容 插入Hello World。
使用 git add aa 將文件存入暫存區(qū)
此時在 vi aa 修改文件 插入Hello Java

此時暫存區(qū)已經(jīng)和工作區(qū)不同了 
    暫存區(qū)只有一行Hello World 
    工作區(qū)有兩行 Hello World   和 Hello Java

此時git diff 命令 控制臺輸出

    diff --git a/aa b/aa   //比較的是aa文件   源是暫存區(qū)  目標(biāo)是 工作區(qū)
    index 557db03..3fbbfe5 100644
    --- a/aa //-表示 源文件
    +++ b/aa //+表示 目標(biāo)文件
    @@ -1 +1,2 @@  //-1的含義:-表示源,1表示只有1行。+1,2的含義:+表示目標(biāo)文件,1表示第一行,2表示有兩行
     Hello World //前面是空格 表示兩個文件共有部分
    +Hello Java //前面是+ 表示是目標(biāo)文件中有的部分,+表示源文件加上這一行 就是目標(biāo)文件
    
    此處的含義:
        源文件是暫存區(qū),目標(biāo)文件是工作區(qū)
        暫存區(qū)只有一行Hello World 
        工作區(qū)有兩行 Hello World   和 Hello Java
        
        源文件+上Hello Java就是目標(biāo)文件了

對比某次提交和工作區(qū)(git diff commit_id)

某次提交可以用 commit的id指代,HEAD表示最新的提交
首先clean git
當(dāng)前最新提交的文件內(nèi)容是兩行 Hello World和Hello Java
此時vi aa 修改文件內(nèi)容 添加一行 Hello Kotlin

此時 工作區(qū)就有三行  最新的提交是兩行

使用git diff HEAD 查看最新提交與工作區(qū)的對比
控制臺輸出
    diff --git a/aa b/aa  //比較的文件
    index 3fbbfe5..7f2061b 100644 
    --- a/aa //表示源  此處是已提交
    +++ b/aa //表示目標(biāo)文件  此處是工作區(qū)
    @@ -1,2 +1,3 @@ //-1,2的含義:-表示源文件,1表示開頭行,2表示有兩行  +1,3的含義:+表示目標(biāo)文件,1表示開頭行,3表示有三行
    Hello World //前面是空格,表示兩個文件共有的部分
    Hello Java //前面是空格,表示兩個文件共有的部分
   +Hello Kotlin //前面是+,表示目標(biāo)文件中 獨(dú)有 的部分,表示源文件加上這一行 就是目標(biāo)文件

對比某次提交和暫存區(qū)(git diff --cached commit_id)

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

當(dāng)前最新的提交有三行
    Hello World
    Hello Java
    Hello Kotlin

vi 修改內(nèi)容,添加一行 Hello Android
提交文件至?xí)捍鎱^(qū)

當(dāng)前暫存區(qū)有四行
    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 //表示源文件 增加這一行就是目標(biāo)文件,這一行是目標(biāo)文件獨(dú)有的
   
   某次提交是 源文件
   暫存區(qū)是   目標(biāo)文件


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 來源:Git由淺入深之操作與指令作者:驚鴻三世(轉(zhuǎn)載已獲得原作者許可,如需轉(zhuǎn)載請與原作者聯(lián)系) 本篇正式開始介紹G...
    極樂君閱讀 1,889評論 9 67
  • Git使用教程:https://blog.csdn.net/tgbus18990140382/article/de...
    SkTj閱讀 2,954評論 1 11
  • git作為時下最流行的代碼管理工具,Git權(quán)威指南總結(jié)了十條喜歡Git的理由: 異地協(xié)同工作; 現(xiàn)場版本控制; 重...
    古斟布衣閱讀 1,908評論 0 12
  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,963評論 0 13
  • 總結(jié)《2018年11月30日》 【連續(xù)第256+1+1+2+3+1+20天總結(jié)】 一.目標(biāo)完成情況? 1.影響力,...
    今天不說話閱讀 311評論 0 0

友情鏈接更多精彩內(nèi)容