可以通过git diff命令来对比文件的修改点。
linux的diff命令
在介绍git diff命令之前,先看看linux提供的diff命令。
比如现在桌面上有a.txt,b.txt两个文件,比较两个文件的不同点:
diff -u a.txt b.txt
--- 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 diff命令比较工作区和暂存区文件的差别:
可以看到,和linux带的命令有所不同,由于linux中工作区和暂存区中的文件是同名的,所以git使用a/a.txt和b/a.txt来区分两个文件。
暂存区中的文件作文源文件,工作区的文件作为目标文件
就可以看出工作区和暂存区中第一行是一样的,暂存区中的文件增加一行hello git即与目标文件相同。
比较工作区和版本库文件的差异
命令:
git diff commit_id
将刚刚的a.txt提交,然后修改a.txt文件:
使用命令:
git diff 25dc
git diff HEAD // 如果是与最新的提交比较,commit id可以使用 HEAD代替
比较暂存区与版本库文件的差异
命令:
git diff -cached commit_id // 如果与最新的提交比较可以使用HEAD代替commit_id或省略commit_id
将刚刚的修改加入暂存区:
比较: