本指南提供了将修补程序应用于程序或文件的基本概述。
用于应用补丁的命令是patch命令,但是为了应用补丁,还需要使用diff命令来提供需要修补的差异。
你为什么要创建一个补丁
想象一下,您有一个HTML文件,如下所示:
欢迎来到MySite
上述源加载到Web浏览器时,将显示“欢迎使用MySite”字样。
编程时通常会有同一文件的多个版本。例如,有一个版本是当前的实时版本,开发分支上可能有另一个版本可能包含多个更改,最后,版本分支上可能还有另一个版本。
发布分支将是真实用户使用的版本(即在这种情况下是MySite网站的访问者)。让我们说MySite的版本是1.0。在开发阶段之后,您将创建一个发布分支,在本例中为1.1。开发分支将位于发布分支之前,因为它可能包含版本1,2中未发布的更改,但将包含版本1.1。
想象一下,有一个错误,MySite应该被称为YourSite。您可以依次转到每个分支并更改实时版本,开发版本和发行版本,您可以将更改作为实时修补程序,然后将修补程序应用于开发和发布分支。
一个工作的例子
创建一个名为myfile.html的文件,其中包含以下代码:
欢迎来到MySite
这是修补源代码的工作示例。
创建另一个名为myfile_v2.html的文件,其中包含以下代码:
欢迎来到YourSite
这是修补源代码的工作示例。
第一个文件是标题为“欢迎使用MySite”的原始网页。第二个文件与第一个文件相同,只是MyFile在文本中重命名为YourFile。
如何创建Diff文件
为了创建补丁,我们需要计算myfile.html和myfile_v2.html之间的差异。
我们可以使用diff命令执行此操作,如下所示:
diff -u myfile.html myfile_v2.html> myfile.patch
您可以在nano编辑器中打开myfile.patch文件,如下所示: nano myfile.patch
未更改的行以蓝色显示。已删除的行以红色显示,已添加的行以绿色显示。 要将修补程序应用于myfile.html,请使用以下命令: patch <myfile.patch 这将使用diff命令创建的更改应用于原始文件myfile.html。 如果要还原修补程序以使myfile.html恢复到原来的状态,请使用以下命令: patch -R <myfile.patch patch命令可用于在整个目录结构中应用补丁。 有比patch命令更好的工具来创建补丁并确保良好的源代码控制。 有很多开发项目使用GIT进行源代码控制是有原因的。 GIT可以轻松创建一致的分支策略。 patch命令适用于将差异应用于bash脚本或简单的东西,但您可以轻松地创建要修补的文件的备份副本,只需将新文件复制到同一位置即可。 有关更多信息,请使用man命令: 男人补丁 如何使用Patch命令应用修补程序
如何恢复补丁
摘要