git命令使用小记(打补丁)
需求:需要从开发分支提取本人提交代码,然后合并到主分支
一、制作补丁包
mkdir -p patches
for commit in $(git log commitA..commitB --author="username" --reverse --pretty=format:"%h");
do
git format-patch -1 $commit -o patches
done
二、打包
git am patches/*.patch
遇到冲突怎么办?
处理冲突:
合并无冲突部分,冲突部分存入.rej文件中,冲突部分需要手动处理
git apply --reject file.patch
处理完冲突后需要删除.rej文件
处理完冲突后需要
git add . # 添加所有修改,这里包括自动合并的和手动处理的文件
处理完冲突后继续
git am --resolved
也可以使用
git am --continue
没有异常就可以通过git log查看到已合并的补丁
如果需要将多次提交合并为一次提交同步到主分支,可以将上面的补丁包打到一个新分支上,然后在主分支执行命令 git merge --squash new-branch-name,然后git commit -m "xxx"就可以了