(最强的武器就是打补丁 ^ ^)
假如有1.c和2.c
其中2.c为高版本文件,1.c为低版本文件
我们想要用2.c文件替换掉1.c文件中内容
可以用命令diff 1.c 2.c > test.patch
来生成补丁包
其中patch文件中 '<'代表的是后面要删除的内容,而 '>'代表的是后面要增加的内容。
然后是"1,3c1,3"的意思
为了方便理解我再生成一个补丁包
对比一下"2c2,3",可以发现这句话的意思就是删除第一个文件(旧版本)的第2行,在后面增加另一个文件(新版本)的第2到3行。所以上面的"1,3c1,3"代表的是删除第一个文件的第1到3行,在后面增加第二个文件的第1到3行咯。
接下来是打补丁的操作
用命令 patch -p0 1.c(想被打的文件) < test.patch(补丁)
看看那结果是不是和预期一样捏。
另外还有一个反向打补丁的操作(反打的意思吗哈哈)
patch -Rp0 1.c < test.patch (R means : reverse)
我的理解是还原打补丁前的文件,将< >这两个符号方向调换,那不就是负负等正吗。
我觉得这打补丁用在大量需要修改文件的项目中有奇效啊。