必威体育Betway必威体育官网
当前位置:首页 > IT技术

如何使用patch命令打补丁

时间:2019-10-09 18:45:49来源:IT技术作者:seo实验室小编阅读:82次「手机版」
 

patch补丁

有时候因为条件限制,我们不能使用git仓库进行代码的更新工作

例如你需要更新服务器的代码,一般的生产环境上面的代码是某个版本的代码而非整个git仓库。

当你进行了一些开发,你需要将你的代码部署到服务器上面,进行一系列测试。

这时,使用patch是一个不错的办法。

  • 确保你的服务器上安装了patch命令。如果没有安装,在联网状态下安装一下也就几分钟的事。
  • 在你本地生成patch文件。在你的git仓库中,生成patch 文件有两种方法。
    • 使用 git format-patch commit_id。这条命令会把从HEAD到你指定的commit_id的所有提交都单独生成一个patch文件。这种情况下生成的patch 文件只适用于服务器上要更新的 代码也是一个git仓库里的代码。
    • 使用 git diff master (or commit_id) > test.patch。这条命令生成的patch文件可以在linux系统上直接用patch命令打到代码里,也就是所谓的通用patch。这里master就是master分支;也可以是你想对比的版本号。比如HEAD^,就会把你的最新代码和 HEAD^这个版本进行比较,并生成patch文件。
  • 将你的patch文件拷贝到你的服务器工程目录中,使用命令patch -pn < patch_file

    n的意思就是忽略掉几个/。例如:

    --- a/aaa/bbb/ccc.py
    +++ b/aaa/bbb/ccc.py
    
    如果你把这个patch 文件放到你服务器上的../aaa目录,那么你只需要忽略掉上面的diff比较的文件路径的第一个/就可以了,也就是你应该使用命令:patch -p1 < patch_file

注意

应用patch到时候会有一些输出,注意看是否有错误信息。

另外,应用完成以后记得查找一下.rej文件,如果有这种文件表示应用失败,一般的原因就是代码冲突。

不要慌,打开这个.rej以及相应的.orig文件对比一下你就知道冲突在哪了,解决掉冲突就可以了。

撤销patch

将打上的补丁给恢复回去:

patch -R pn < patch_file

相关阅读

Spring Boot 中使用 @Transactional 注解配置事务管理

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种

Modernizr.js-使用

下载 Modernizr 与其它 JavaScript 库相同的是,Modernizr 可提供 development 和 production 版本。 与大多数库相比,唯一的不同之

Linux下paste工具的使用

paste工具主要用于将多个文件的内容合并输出,合并动作为按行将不同文件的行信息放在一行,默认情况下不同文件的数据用空格或tab键进

VueJS简明教程(一)之基本使用方法

简介:这是一篇超级简单的入门文章 如果说是JQuery是手工作坊,那么Vue.js就像是一座工厂,虽然Vue.js做的任何事情JQuery都可以做,但

淘宝二级域名使用方法与规则

最近,一些店长来问网上开店的小编,为啥有些店铺的名字不是无规律的数字而是别的?这里给大家说说这是什么原因。 首先,他使用的是淘

分享到:

栏目导航

推荐阅读

热门阅读