需求:需要從開發分支提取本人提交代碼,然后合并到主分支
一、制作補丁包
????????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"就可以了