概述
程序员的日常开发过程中经常会经常做代码托管与提交,对于code的生成patch和打patch成为经常需要做的事情。
什么是patch?
简单地讲,patch中存储的是你对代码的修改
什么是生成patch?
生成patch就是记录你对代码的修改并将其保存在patch文件中
什么是打patch?
打patch就是将patch文件中对代码的修改,应用到源代码,从而把代码的修改应用到code中。
尽管本身Linux命令里有diff和patch两个命令可以生成patch和打patch。但是这两个命令的有两个缺点值得关注下:
1、对同一目录下单个文件或者多个文件,diff和patch这两个命令比较方便。对于git这种以project为单位的修改,尤其是涉及到多个文件夹下的文件的改动是,就很不方便
2、无法保存commit的信息
因此推荐大家使用git的format-patch和am命令进行生成Patch和打patch,用此方法获取的patch其实是commit里提交code修改以及commit信息。有如下好处:
- 能够记录所有的改动可以保存commit信息
- 能够灵活的获取patch,可以获取任意两个commit之间的patch集
git format-patch命令使用
#生成最近的1次commit的patch
$ git format-patch HEAD^
</