如何使用git 生成patch 和打入patch-patch文件

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

根据 commit id 生成 patch

1,首先先通过git log 查看有哪一些commit

如何使用git 生成patch 和打入patch

git log

2,把某一次 commit 以后的改动 生成

命令:git format-patch 6e454f34

生成的patch 如下图所示:

如何使用git 生成patch 和打入patch

生成patch

不包含 6e454f34 的改动

把 patch 打入到我们的project

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

如何使用git 生成patch 和打入patch

由于这些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

patch 打入成功

如何使用git 生成patch 和打入patch

patch 已经成功打入到 项目里

生成patch 有很多种方法 这里介绍的只是其中一种,详细的用法可以参考:https://git-scm.com/docs/git-format-patch

推荐阅读