1 预热 : 理解 diff与patch

先来了解2个基本概念: diff  & patch

文档1:hello

应该杜绝文章中的错别子。

但是无论使用
*全拼,双拼
*还是五笔

是人就有可能犯错,软件更是如此。

犯了错,就要扣工资!

改正的成本可能会很高。

文档2: world

应该杜绝文章中的错别字。

但是无论使用
*全拼,双拼
*还是五笔

是人就有可能犯错,软件更是如此。

改正的成本可能会很高。

但是“只要眼球足够多,所有bug都好捉”,
这就是开源的哲学之一。



通过命令:
diff -u hello world 1>diff.txt得到结果


-u是指使得差异输出中带有上下文

--- ./hello	2014-01-26 10:41:50.000000000 +0800   --->原始文件
+++ ./world	2014-01-26 10:42:58.000000000 +0800   --->目标文件
@@ -1,4 +1,4 @@          --->一个差异小节,源文件的第1行开始的4行,目标文件的第1行开始的4行。
-应该杜绝文章中的错别子。   ---> -号开始的表示只出现在源文件中
+应该杜绝文章中的错别字。   ---> +号开始的表示只出现在目标文件中。
 
 但是无论使用             --->以空格出现表示出现在2个文件中,都出现了
 *全拼,双拼
@@ -6,6 +6,7 @@          --->又一个差异小节,源文件的第6行开始的6行,目标文件的第6行开始的7行。
 
 是人就有可能犯错,软件更是如此。
 
-犯了错,就要扣工资!
+改正的成本可能会很高。
 
-改正的成本可能会很高。
\ No newline at end of file
+但是“只要眼球足够多,所有bug都好捉”,
+这就是开源的哲学之一。
\ No newline at end of file
理解如下:
---代表原始文件
+++代表目标文件
在比较内容中,

以-  开始的行是只出现在原始文件中的行。
以+  开始的行是只出现在目标文件中的行。
以空格开始的行是在2个文件中都出现的行。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

关于patch

删除world,然后输入以下命令:

cp hello world
patch world 0<diff.txt



或者
cp world hello
patch -R hello 0<diff.txt


http://www.cnblogs.com/apaqi/archive/2012/07/06/2578821.html

你可能感兴趣的:(git,patch,diff)