如何在Git中将Dev分支的最新变更合并到自身分支且不覆盖本地工作?
解决分支落后于Dev分支的同步问题
下面两种方法都能在不覆盖你工作的前提下,把Dev分支的最新变更同步到你的multiple_fixes分支里,根据需求选择即可:
方法1:用Rebase(推荐单人开发分支,提交历史更干净)
- 切换到你的本地分支:
git checkout multiple_fixes - 拉取远程Dev的最新代码:
git fetch origin dev(如果远程仓库别名不是origin,换成你实际的别名) - 把你的提交“挪”到Dev最新代码的后面:
git rebase origin/dev - 碰到冲突别慌:Git会列出冲突文件,打开这些文件手动调整代码(保留双方正确的逻辑),解决后执行
git add <冲突文件名>,然后继续rebase:git rebase --continue;要是不想处理当前提交可以用git rebase --skip,想彻底放弃就用git rebase --abort - 所有冲突解决完后,强制推送到远程分支:
git push origin multiple_fixes --force(因为rebase修改了提交历史,必须强制推送)
方法2:用Merge(适合多人协作分支,保留完整合并记录)
- 切换到你的本地分支:
git checkout multiple_fixes - 拉取远程Dev的最新代码:
git fetch origin dev - 把Dev的最新代码合并到你的分支:
git merge origin/dev - 遇到冲突时,手动解决后执行
git add <冲突文件名>,然后完成合并:git commit(Git会自动生成合并提交信息,直接保存即可) - 最后推送到远程分支:
git push origin multiple_fixes
注意事项
- 操作前先给分支做个备份:
git branch multiple_fixes_backup,万一操作失误还能找回代码 - 如果你的分支有其他协作者在同时使用,优先选Merge,Rebase改写历史会导致其他人的代码出现混乱;只有你自己用的话,Rebase的提交历史更清爽
- 解决冲突后一定要测试代码,确保合并后的功能正常运行
内容的提问来源于stack exchange,提问作者karozans
相关产品推荐
相关产品推荐

