【Git】diff 与 patch

diff用法

在终端执行以下命令
diff -u ArrayTest.java ArrayTest.java.backup
-u 选项可以在diff结果中显示上下文信息。
--- ArrayTest.java	Tue Mar 11 16:01:12 2014
+++ ArrayTest.java.backup	Tue Apr 22 15:37:37 2014
@@ -5,10 +5,10 @@
 
 public class ArrayTest {
     public static void main(String[] args) {
+    	//
         List list = Arrays.asList(1, 3, 5, 7, 9);
         for (int i : list) {
             System.out.println(i);
-            list.remove(i);
         }
     }
第1,2两行是我们比较的两个文件以及他们的时间戳,并且分别用 ---+++来表示两个文件。
@@ -5,10 +5,10 @@是对下面比较结果的一个总结,
  1. -5,10表示比较内容对应于ArrayTest.java的第5行开始之后的10行。
  2. <span">+5,10表示比较内容对应于ArrayTest.java.backup的第5行开始之后的10行。
比较结果中开头符合的意义如下
  1. 空格两个文件一致
  2. +只有+++代表的文件中有
  3. -只有---代表的文件中有

patch用法

diff -u ArrayTest.java ArrayTest.java.backup < diff.txt
意思可以等同于 ArrayTest.java - ArrayTest.java.backup = diff.txt
如果执行 cp ArrayTest.java ArrayTest.java.backup之后,可以通过以下命令恢复
patch ArrayTest.java.backup < diff.txt <=> ArrayTest.java - diff.txt
反之可以通过 patch -R ArrayTest.java < diff.txt <=> ArrayTest.java.backup + diff.txt

版权声明:本文为FeeLang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。