git应用详解十:git diff

可以通过git diff命令来对比文件的修改点。

linux的diff命令

在介绍git diff命令之前,先看看linux提供的diff命令。
比如现在桌面上有a.txt,b.txt两个文件,比较两个文件的不同点:

diff -u a.txt b.txt 

git应用详解十:git diff_第1张图片

--- a.txt	2019-08-11 16:59:07.000000000 +0800                          // 代表源文件
+++ b.txt	2019-08-11 16:59:18.000000000 +0800                     // 代表目标文件
@@ -1,2 +1,2 @@                           // -1,2 代表源文件的第一行开始,连续两行        +1,2同理
 line 1                                                // 前面是个空格,代表两个文件中这一行的内容相同
-line 2                                               // 前面是-,代表源文件删掉这一行
+line 3                                             // 前面是+,代表源文件增加这一行,就可以得到目标文件

如果理解这个,git的diff也就好理解了

git diff

git比较工作区和暂存区文件的差别

命令:

git diff

先创建一个文件并加入暂存区,然后再修改这个文件:
git应用详解十:git diff_第2张图片
使用git diff命令比较工作区和暂存区文件的差别:
git应用详解十:git diff_第3张图片
可以看到,和linux带的命令有所不同,由于linux中工作区和暂存区中的文件是同名的,所以git使用a/a.txt和b/a.txt来区分两个文件。
暂存区中的文件作文源文件,工作区的文件作为目标文件
就可以看出工作区和暂存区中第一行是一样的,暂存区中的文件增加一行hello git即与目标文件相同。
git应用详解十:git diff_第4张图片

比较工作区和版本库文件的差异

命令:

git diff commit_id

将刚刚的a.txt提交,然后修改a.txt文件:
git应用详解十:git diff_第5张图片
使用命令:

git diff 25dc      
git diff HEAD    // 如果是与最新的提交比较,commit id可以使用 HEAD代替

git应用详解十:git diff_第6张图片

比较暂存区与版本库文件的差异

命令:

git diff -cached commit_id    // 如果与最新的提交比较可以使用HEAD代替commit_id或省略commit_id

将刚刚的修改加入暂存区:
git应用详解十:git diff_第7张图片
比较:
git应用详解十:git diff_第8张图片

你可能感兴趣的:(git)