【Git】diff 与 patch
原创
©著作权归作者所有:来自51CTO博客作者Lyndon_梁飞的原创作品,请联系作者获取转载授权,否则将追究法律责任
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 @@是对下面比较结果的一个总结,
- -5,10表示比较内容对应于ArrayTest.java的第5行开始之后的10行。
- <span">+5,10表示比较内容对应于ArrayTest.java.backup的第5行开始之后的10行。
比较结果中开头符合的意义如下
- 空格两个文件一致
- +只有+++代表的文件中有
- -只有---代表的文件中有
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