一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

linux中diff命令的使用详解

时间:2016-04-05 编辑:简简单单 来源:一聚教程网

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

git diff常用比较方法
git diff #工作区和暂存区比较
git diff master #工作区和master分支比较
git diff HEAD #工作区和HEAD比较

热门栏目