git am¶
下面是同事拿到三个 patch 后的应用方法总结:
推荐方式:git am(保留作者、提交信息)¶
Bash
cd path/to/your/repo
# 1. 确保工作区干净
git status
# 2. 依次应用三个 patch
git am 0001-*.patch 0002-*.patch 0003-*.patch
# 简便写法(文件名本身按 0001/0002/0003 有序)
git am *.patch
这样做的好处:会保留原始的 commit message、作者、日期,直接在同事仓库里生成三个新 commit。
备选方式:git apply(只打改动,不创建 commit)¶
适合同事想自己审阅改动、重新组织提交的情况。
常用辅助操作¶
- 应用前先预检能否干净应用:
- 应用后查看历史:
冲突处理¶
git am 中途遇到冲突时:
Bash
# 1. 查看冲突文件
git status
# 2. 手动解决冲突后
git add <冲突文件>
# 3. 继续应用下一个 patch
git am --continue
# 若想放弃,回到应用前状态
git am --abort
注意事项¶
- 顺序很重要:
git format-patch -3生成的文件名带0001/0002/0003序号,按顺序应用即可,不要打乱。 - 基础要一致:同事的分支起点最好和你生成 patch 时基于的提交一致,否则容易在
git am时出现冲突。 - 建议先用
--check预检,避免应用到一半才发现冲突。