git 生成patch 和打入patch

摘要:
也就是说,客户使用git为我们生成补丁。我可以使用git生成补丁,以及如何输入补丁来汇总和生成补丁:(此处描述的补丁生成基于提交记录)1。例如,首先通过gitlog检查承诺。2.在第一次提交后(不包括第一次提交)生成补丁,如上图所示:

转载:https://blog.csdn.net/liuhaomatou/article/details/54410361

平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用git 生成patch 给到我们,那我们就需要把客户给到patch 打入到我们的project ,基于这样一个场景,我把git 如何生成patch 和如何打入patch 做总结

生成patch 的方法:(我这里描述的生成patch 是根据commit 记录生成的)

1.例如首先先通过git log 查看有哪一些commit

git 生成patch 和打入patch第1张

2.把第一次commit 提交以后的(不包括第一次提交)都生成patch 

如上图所示:使用命令:git format-patche795fefabc

然后生成的patch 文件如下图所示

git 生成patch 和打入patch第2张

打入patch 的方法:

把生成的patch 文件copy 到一个文件夹中来(这里我创建了patch 文件夹)。如下图所示

git 生成patch 和打入patch第3张

由于这些patch显然是用git format-patch来生成的,所以用git的工具应该就可以很好的做好。git am 就是作这件事情。

在使用git am之前, 你要首先git am --abort 一次,来放弃掉以前的am信息,这样才可以进行一次全新的am。
不然会遇到这样的错误。
                .git/rebase-apply still exists but mbox given.

git am 可以一次合并一个文件,或者一个目录下所有的patch,如下图所示:

git 生成patch 和打入patch第4张

---------------------------------------------------------------------------------------总结:---------------------------------------------------------------------------------------------------------------------------------------------

1 使用git format-patch生成所需要的patch:
当前分支所有超前master的提交:
git format-patch -M master
某次提交以后的所有patch:
git format-patch 4e16 --4e16指的是commit名
从根到指定提交的所有patch:
git format-patch --root 4e16
某两次提交之间的所有patch:
git format-patch 365a..4e16 --365a和4e16分别对应两次提交的名称
某次提交(含)之前的几次提交:
git format-patch –n 07fe --n指patch数,07fe对应提交的名称
故,单次提交即为:
git format-patch -1 07fe
git format-patch生成的补丁文件默认从1开始顺序编号,并使用对应提交信息中的第一行作为文件名。如果使用了-- numbered-files选项,则文件名只有编号,不包含提交信息;如果指定了--stdout选项,可指定输出位置,如当所有patch输出到一个文件;可指定-o <dir>指定patch的存放目录;

新增:如果只想为最后第N次提交产生补丁,则可以执行下列命令:

git format-patch -N

为最后一次提交产生一个补丁:

git format-patch -1


2应用patch:
先检查patch文件:git apply --stat newpatch.patch
检查能否应用成功:git apply --check newpatch.patch
打补丁:git am --signoff < newpatch.patch

(使用-s或--signoff选项,可以commit信息中加入Signed-off-by信息)

免责声明:文章转载自《git 生成patch 和打入patch》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇详解 通道 (Channel 接口)diedaiqi下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue 2.0 及 vue 3.0 rem配置

vue 2.0 配置 rem   首先先安装postcss-px2rem    (百度可以) https://www.jianshu.com/p/e6476bbc2131     npm install postcss-px2rem 找到文件 build / vue-loader.config.js  添加 const px2rem = require('...

Doxygen的输出中文乱码

最近开始尝试使用Doxygen生成程序的文档。程序的源代码采用的是GB2312的格式存储的,而Doxygen输出的文档是UTF-8格式的,出现了乱码。虽然Visual Studio 2003支持以UTF-8格式存储源代码,但是要把所有文件都转换担心太麻烦。于是,在配置文件中增加了一行代码: INPUT_ENCODING = GB2312  这下问题解决了,...

Dll注入技术之输入法注入

DLL注入技术之输入法注入     输入法注入原理是利用Windows系统中在切换输入法需要输入字符时,系统就会把这个输入法需要的ime文件装载到当前进程中,而由于这个Ime文件本质上只是个存放在C:WINDOWSsystem32目录下的特殊的DLL文件,因此我们可以利用这个特性,在Ime文件中使用LoadLibrary()函数待注入的DLL文件。1.编写...

php:// 访问各个输入/输出流

相关 php.ini 配置 allow_url_fopen :on 默认开启 该选项为on便是激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象文件等。 allow_url_include:off 默认关闭,该选项为on便是允许 包含URL 对象文件等 php://stdin, php://stdout 和 php://stderr...

Samba安装配置

Samba简介 Samba官网:http://www.samba.orgSMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“N...

网络管理snmp实验

一、实验目的: 1)学习教材“8.1Windows管理命令”,熟练掌握操作系统自带的基本网络测试工具,课外完成。 2)学习并掌握snmputil命令的格式及基本使用。 二、实验要求提示: 1)分别使用Snmputil, SnmpUtilG试验(相关软件和资料见“资料/其他 ”)。 2)先对自己使用的计算机,再两人一组、对同学的计算机进行网管实验。 1)查看...