概述
?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)文件