仅创建修改部件的补丁

时间:2015-09-01 16:47:30

标签: git cmake diff patch

我有一个包含1500行的文件,或多或少,我只修改了一行并使用了diff -u original.txt modified.txt > original.patch而不是仅使用修改后的部分创建补丁文件,它不仅包含原始文件,而且还修改了完全在那个文件上。是否可以只在补丁上修改部分?

1 个答案:

答案 0 :(得分:1)

如果您删除-u选项,它应该有用。

diff original.txt modified.txt > original.patch

编辑:我创建了一个小例子来比较输出:

拥有以下文件:

==> a.txt <==
one
two
three
four
five

==> b.txt <==
one
two
3
four
five

如果我使用diff -u a.txt b.txt >> diff-u.p,我会收到以下内容:

==> diff-u.p <==
--- a.txt   2015-09-03 20:16:02.000000000 +0200
+++ b.txt   2015-09-03 20:16:13.000000000 +0200
@@ -1,5 +1,5 @@
 one
 two
-three
+3
 four
 five

请注意,diff包含更改行周围的线条,使用-u选项diff --help时可以预料到这一点:

-u  -U NUM  --unified[=NUM]  Output NUM (default 3) lines of unified context.    

但是,如果我使用diff a.txt b.txt >> diff.p,我会收到以下内容:

==> diff.p <==
3c3
< three
---
> 3$

现在diff只包含已更改的行。