看懂diff比较命令

2021年4月6日14:30:16
评论
6244

看懂diff比较命令

diff命令是版本管理工具的基础,本文主要讲解diff比较几种方式和git diff使用技巧。如下两个文件,file1和file2

$ cat file1
aa
aa
aa
aa
aa
$ cat file2
aa
aa
bb
aa
aa

1.普通格式diff file1 file2

$ diff file1 file2
3c3
< aa
---
> bb

说明:3c3表示file1的第3行有变化(change),变动为file2的第3行;<表示从file1当中去除该行;---分割file1和file2;>表示file2增加了该行

2.上下文格式diff -c file1 file2

$ diff -c file1 file2
*** file1 2016-04-04 15:56:25.203923276 +0800
--- file2 2016-04-04 15:56:47.647138613 +0800
***************
*** 1,5 ****
aa
aa
! aa
aa
aa
--- 1,5 ----
aa
aa
! bb
aa
aa

说明:
(1)前两行表示比较文件的基本信息文件名和时间等。"***"表示变动前的文件,"---"表示变动后的文件。

*** file1 2016-04-04 15:56:25.203923276 +0800
--- file2 2016-04-04 15:56:47.647138613 +0800

(2)***************表示将基本信息和变动信息分割开
(3)*** 1,5 ****表示从第1行开始,联系5行
(4)如果是感叹号(!),表示该行有改动;如果是减号(-),表示该行被删除;如果是加号(+),表示该行为新增。

3.合并模式diff -u file1 file2

为了解决大量内容重复显示而引入,git就是使用衍生的合并模式

$ diff -u file1 file2
--- file1 2016-04-04 15:56:25.203923276 +0800
+++ file2 2016-04-04 15:56:47.647138613 +0800
@@ -1,5 +1,5 @@
aa
aa
-aa
+bb
aa
aa

说明:
(1)表示文件基本信息,"---"表示变动前的文件,"+++"表示变动后的文件。

--- file1 2016-04-04 15:56:25.203923276 +0800
+++ file2 2016-04-04 15:56:47.647138613 +0800

(2) 变动位置首末用两个@表示,"-1,5"表示第一个文件从第1行开始的连续5行,"+1,5"表示第二个文件从第1行开始的连续5行

@@ -1,5 +1,5 @@

(3)变动具体内容,减号表示第一个文件删除的行,加号表示第二个文件新增的.

看看版本管理工具git diff效果:

diff --git a/file1 b/file1
index a57a69a..863575a 100644
--- a/file1
+++ b/file1
@@ -1,5 +1,5 @@
aa
aa
-aa
+bb
aa
aa

4.git diff常用比较方法

git diff #工作区和暂存区比较
git diff master #工作区和master分支比较
git diff HEAD #工作区和HEAD比较
PHP点点通
  • 本文由 发表于 2021年4月6日14:30:16
  • 转载请务必保留本文链接:https://www.phpddt.com/phpdown/diff.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: