From 4cc6065bcda4406db9a854f8971678461c0594d9 Mon Sep 17 00:00:00 2001 From: "rick.chan" Date: Tue, 26 May 2020 13:33:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=94=9F=E6=88=90/=E5=BA=94?= =?UTF-8?q?=E7=94=A8=20git=20patch=20=E7=9A=84=E6=96=B9=E6=B3=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: rick.chan --- Software/Applications/Git/Git_使用说明.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Software/Applications/Git/Git_使用说明.md b/Software/Applications/Git/Git_使用说明.md index ae7c1c6..9d56acd 100644 --- a/Software/Applications/Git/Git_使用说明.md +++ b/Software/Applications/Git/Git_使用说明.md @@ -319,10 +319,19 @@ git push ### 生成 Patch -先 git log 看一下有哪些提交,然后看一下要从那个 commit id 开始生成 Patch。然后从 commit id 开始(不包含该 commit id)生成 Patch: - ```bash +# 生成最近的 1 次 commit 的 patch +git format-patch HEAD^ +# 生成最近的 3 次 commit 的 patch +git format-patch HEAD^^^ +# 生成某 commit 以来的修改 patch(不包含该 commit) git format-patch +# 生成两个 commit 间的修改的 patch(包含两个 commit. 都是具体的 commit 号) +git format-patch .. +# 生成单个 commit 的 patch +git format-patch -1 +# 生成从根到 提交的所有 patch +git format-patch --root ``` ### 应用 Patch @@ -330,8 +339,14 @@ git format-patch 将所有 Patch 拷贝到某一文件夹下,然后: ```bash -git am --abort +# 检查 patch 是否能够打上,如果没有任何输出,则说明无冲突,可以打上 +git apply --check /*.patch +# 将谋文件夹下的全部 patch 都打上 git am /*.patch +# 当 git am 失败时,用以将已经在 am 过程中打上的 patch 废弃掉(比如有三个 patch,打到第三个 patch 时有冲突,那么这条命令会把打上的前两个 patch 丢弃掉,返回没有打 patch 的状态) +git am --abort +# 当 git am 失败,解决完冲突后,这条命令会接着打 patch +git am --resolved ``` ## 参考资料