git patch 使用

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的存放目录;

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

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

如果应用patch出现问题:参考git am PATCH 失败的处理方法http://blog.csdn.net/sunnylgz/article/details/7660638

参考资料:

git-format-patch(1) - Linux man page http://linux.die.net/man/1/git-format-patch

How to create and apply a patch with Git http://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git

原文:http://blog.csdn.net/sunnylgz/article/details/7661920

时间: 2024-10-13 15:15:17

git patch 使用的相关文章

git patch生成方法

先把修改commit掉,然后生产修改patch给提交代码的同事,具体操作步骤如下: 修改代码的同事: git format-patch al821_xxx origin/al821_xxx 会生成:0001-HQ00656135-xxx-al821_xxx.patch这样的patch文件 把这个patch给提交代码的同事 提交代码的同事,执行: git am 0001-HQ00656135-xxx-al821_xxx.patch 然后可以检查这个提交记录有没有问题,如果没有问题 执行git pu

Git Patch使用: 生成,导入,解决冲突

1. Git Patch git patch包括2中: 标准diff 和git format-patch 2. 生成patch 2.1 git diff 生成标准patch 最简单, 但是很多信息没有 git diff > my.diff 2.2 git format-patch 生成git专用patch git format-patch -M master format-patch中包涵diff, git commit, time等等 From c0b96dc1b770c45c49bd2945

git patch生成和使用

前言 由于工作需要,基于源码进行改动的时候经常需要在git分支上打各种各样的patch来解决各种各样的问题.这里总结两种生成patch和打patch的方法. git diff 这种是Unix下的patch,在git分支下通过git diff命令生成.具体命令如下: git diff > diff.patch 对于git diff生成的patch,可以用如下两条命令进行merge: git apply diff.patch 或者 patch -p1 < diff.patch git format

git patch 的用法

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.

git patch

-p 指定目录级别(从路径全称中除去几层目录) 如,如果补丁文件包含路径名称 /curds/whey/src/blurfl/blurfl.c,那么: -p 0 使用完整路径名 -p 1 除去前导斜杠,留下 curds/whey/src/blurfl/blurfl.c. -p 4 除去前导斜杠和前三个目录,留下 blurfl/blurfl.c -d Directory ---打补丁前,更改当前目录到指定目录 patch -N 表示严格指定应用补丁 -N  --forward  Ignore pat

git apply、git am打补丁.diff 和 .patch【转】

本文转载自:https://www.jianshu.com/p/e5d801b936b6 前提: 生成patch: git format-patch -M master 生成指定patch,0163bed3bf59ae74c36cc5138b4c24f1556d8304是commit id,-1是指从当前id开始,向下提交次数,包含此次且计数从1开始. 也就是说,我想要打出0163bed3bf59ae74c36cc5138b4c24f1556d8304当前的patch,则: git format

git命令

1. git pull    更新服务器代码到本地a). git pull origin master是将origin这个版本库的代码更新到本地的master主分支 2. git push    将本地代码提交到服务器 3. git log    查看提交信息a). git log -p    查看历次的log信息及更改情况b). git log -p -4    查看距现在最近的4次的log信息及更改情况c). git log frameworks/    查看关于frameworks/目录修

Git实用技巧

1.git时光穿梭 在我本地的git库里有三次commit 如果此时我想要回退到第二次提交的状态,可运行 git reset --hard 8d100604b66cf4a3c8bb65549bb2c2dc58647e4c 但是此时我又想回到第三次提交的状态,可运行 git reflog 然后运行 git reset --hard f66c7a7 2.git patch git生成patch的两种方式:git diff  和 git format-patch

【转】git命令

Git使用 1. git pull    更新服务器代码到本地a). git pull origin master是将origin这个版本库的代码更新到本地的master主分支 2. git push    将本地代码提交到服务器 3. git log    查看提交信息a). git log -p    查看历次的log信息及更改情况b). git log -p -4    查看距现在最近的4次的log信息及更改情况c). git log frameworks/    查看关于framewor