1,
//生成从当前commit往前x个commit的patch文件
git format-patch -x
//默认有几个commit就会生成几个.patch文件,并且默认文件名从最早提交的commit 0001编号
//生成从指定commit_id(包含该commit) 往前x个commit的patch文件
git format-patch commit_id -x
//单独生成某个commit的patch
git format-patch commit_id -1
//当然也可以将所有commit的差异合并到一个patch文件,方便使用
git format-patch -x --stdout > patch-name.patch
//生成两个commit之间的所有commit的patch文件(不包含start_commit):
git format-patch start_commit_Id..end_commit_Id
2,
//检查patch文件
git apply --stat xxx.patch
//检查能否应用成功
git apply --check xxxx.patch
使用git am xxx.patch可以应用指定patch文件
//使用模式匹配git am *.patch会自动根据编号依次应用所有的patch文件(所以生成patch的编号自动安装提交先后生成)
git am *.patch
//使用git apply 命令也可以应用patch(多用于.diff文件)但是相比于am命令不会将commit信息加入
3,
//am 应用patch有冲突,则会提示命令用于查看冲突具体
git am --show-current-patch
//以及用于跳过、继续或者终止am命令
git am --continue
git am --skip
git am --abort
//使用git am -3 xxx.patch可以在发生冲突时使用git mergetool调用冲突合并工具解决冲突
git am -3 *.patch
git mergetool
网友评论