Linux环境下打补丁操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33194301/article/details/88908630

(最强的武器就是打补丁 ^ ^)

假如有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 : reserve)

在这里插入图片描述
在这里插入图片描述
我的理解是还原打补丁前的文件,将< >这两个符号方向调换,那不就是负负等正吗。

我觉得这打补丁用在大量需要修改文件的项目中有奇效啊。

猜你喜欢

转载自blog.csdn.net/qq_33194301/article/details/88908630