patch?什么是patch呢?百度百科的解释如下:

Patch多指补丁的意思比如内存补丁、文件补丁等, 也是电脑命令程序的一种。

其实patch就是“补丁”的意思,那么什么是git打patch呢?

原文链接:https://www.cnblogs.com/ArsenalfanInECNU/p/8931377.html

在程序员的日常开发与合作过程中,对于code的生成patch和打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信息。有如下好处:

1. 对于git这种以project为单位的修改,尤其是涉及到多个文件夹下的多个文件的改动时,非常方便,能够记录所有的改动(添加,修改,删除文件等)
2. 可以保存commit信息。
3. 能够灵活的获取patch。可以获取任意两个commit之间的patch集。

原文链接:https://www.cnblogs.com/shrimpPython/p/10920684.html

在公司里面做测试的时候,使用git打patch的时候,通常是使用 git am patch 或者 cat xx.patch | git apply patch.
git am方法打入patch主要适用于生成patch通过git format-patch生成的Git专用Patch。而git apply 通用与所有的通用patch (git diff就是打的标准patch)
如果是通过make diff打的patch,那么就不能用git am来打入patch。只能使用git apply 来打patch。
所以流程是,找到你打的branch : git branch -r (显示所有branch) , git checkout branch(切换到你的branch),git pull拉到最新的版本 或者使用 git reset --hard commitID
使用git am patch或者git apply patch 打入patch。然后在编译就行了!

原文链接:https://www.cnblogs.com/shengulong/p/9623558.html

git cherry-pick 可以把某个分支的某几次提交合入到当前分支,只是在一台设备上操作。
git format-patch 可以把某个分支的n次提交分别打成n个补丁,然后把这些补丁文件(比如0001-.patch)发给其他人,或者发到其他机器,他们在自己的机器上,把这些补丁合入到他们当前的代码中。

原文链接:https://www.jianshu.com/p/ec04de3f95cc

==============================================================================

简单总结git打patch的步骤:

(1)修改文件。

(2)git add <文件名>。

(3)git commit。

(4)git log --oneline -10  //查看git的log信息

(5)git format-patch -1   //打patch

(6)会在当前目录下生成****.patch的patch文件。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐