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 //表示源文件 增加这一行就是目标文件,这一行是目标文件独有的
某次提交是 源文件
暂存区是 目标文件