git-am
git-am https://blog.csdn.net/mliubing2532/article/details/7577905 这篇文章主要介绍一下git-am 和 format-patch 的使用。 因为在git使用当中,会有很多时候别人 (供应商或者其他的开发人员) 发过来一系列的patch,这些patch通常的是类似这样的名字: 0001-JFFS2-community-fix-with-not-use-OOB.patch 0002-Community-patch-for-Fix-mount-error-in.patch 0003-partial-low-interrupt-latency-mode-for-ARM113.patch 0004-for-the-global-I-cache-invalidation-ARM11.patch 0005-1-arm-Add-more-cache-memory-types-macr.patch 0006-2-Port-imx-3.3.0-release-to-2.6.28.patch 0007-3-Add-MX25-support.patch 0008-Move-asm-arch-headers-to-linux-inc-dir.patch 0009-1-regulator-allow-search-by-regulator.patch 里面包含了提交的日志,作者,日期等信息。你想做的是把这些patch引入到你的代码库中,最好是也可以把日志也引入进来, 方便以后维护用。传统的打patch方式是 patch -p1 < 0001-JFFS2-community-fix-with-not-use-OOB.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,或者你的邮箱目录下的patch. 下面举两个例子: 你现在有一个code base: small-src, 你的patch文件放在~/patch/0001-trival-patch.patch cd small-src git-am ~/patch/0001-trival-patch.patch 如果成功patch上去, 你就可以去喝杯茶了。如果失败了, git 会提示错误, 比如: error: patch failed: android/mediascanner.cpp:452 error: android/mediascanner.cpp: patch does not apply 这样你就需要先看看patch, 然后改改错误的这个文件,让这个patch能够patch上去。 你有一堆patch, 名字是上面提到的那一堆patch, 你把他们放在~/patch-set/目录下 (路径随意) ...