如何将两个Git分支之间的差异提交到第三个分支?
把分支A与B的差异提交到新分支并合并到master的步骤
以下是直接可行的操作步骤,完全适配你提到的大量提交、多次合并冲突的场景:
确保工作区干净并切换到master分支
先检查当前有没有未提交的更改,避免影响后续操作:git status切换到master分支,如果需要同步远程最新版本,执行拉取:
git checkout master git pull origin master基于master创建新分支C
直接创建并切换到分支C:git checkout -b C生成A与B的差异补丁并应用到C
注意:你提到的git diff B A会生成A相对于B的差异,如果要获取从A到B的所有变更(也就是你在B上相对于A做的修改),应该用git diff A B来生成补丁:git diff A B > branch_diff.patch然后在分支C上应用这个补丁:
git apply branch_diff.patch处理冲突并提交更改
应用补丁后检查状态,确认更改符合预期:git status如果出现冲突,手动打开冲突文件解决后,标记文件已处理:
git add <冲突文件名>提交所有更改到分支C:
git commit -m "Apply all changes from branch B relative to branch A"合并分支C到master
切换回master分支,执行合并:git checkout master git merge C若合并时出现冲突,重复冲突解决步骤后提交即可。
清理临时文件与分支(可选)
补丁文件和分支C如果不再需要,可以删除:rm branch_diff.patch git branch -d C
内容的提问来源于stack exchange,提问作者Mohamad-Jaafar NEHME
相关产品推荐
相关产品推荐

