补充生成/应用 git patch 的方法.

Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
rick.chan 2020-05-26 13:33:36 +08:00
parent e4ea571191
commit 4cc6065bcd
1 changed files with 18 additions and 3 deletions

View File

@ -319,10 +319,19 @@ git push <repository>
### 生成 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 id>
# 生成两个 commit 间的修改的 patch包含两个 commit. <commit id 1><commit id 2> 都是具体的 commit 号)
git format-patch <commit id 1>..<commit id 2>
# 生成单个 commit 的 patch
git format-patch -1 <commit id>
# 生成从根到 <commit id> 提交的所有 patch
git format-patch --root <commit id>
```
### 应用 Patch
@ -330,8 +339,14 @@ git format-patch <commit id>
将所有 Patch 拷贝到某一文件夹下,然后:
```bash
git am --abort
# 检查 patch 是否能够打上,如果没有任何输出,则说明无冲突,可以打上
git apply --check <patch dir>/*.patch
# 将谋文件夹下的全部 patch 都打上
git am <patch dir>/*.patch
# 当 git am 失败时,用以将已经在 am 过程中打上的 patch 废弃掉(比如有三个 patch打到第三个 patch 时有冲突,那么这条命令会把打上的前两个 patch 丢弃掉,返回没有打 patch 的状态)
git am --abort
# 当 git am 失败,解决完冲突后,这条命令会接着打 patch
git am --resolved
```
## 参考资料