如何将某代码仓库的分支更新合并到另一仓库的指定分支
跨Git仓库分支合并最优操作方案
该方案可以完整保留提交历史,冲突处理流程透明可控,适合大量变更的合并场景,操作步骤如下:
前置准备
提前在本地克隆好repo B,确保本地Git配置正常,且本地repo B的工作区无未提交的修改。
操作步骤
- 进入本地repo B的目录,切换到需要接收变更的目标分支,先拉取远端最新代码避免后续推送冲突:
git checkout <repoB目标分支名> git pull origin <repoB目标分支名> - 给本地repo B添加repo A作为远程数据源,可自定义远程源命名,示例为
repo-a:git remote add repo-a <repoA的仓库地址> - 拉取repo A的全部分支数据到本地:
git fetch repo-a - 执行合并操作,将repo A指定分支的变更合并到当前repo B的目标分支:
如果合并过程中提示冲突,按照Git提示逐个文件解决冲突后,执行git merge repo-a/<repoA的源分支名>git add <冲突文件>,再运行git commit提交合并结果即可 - 本地验证合并后的代码功能正常后,推送到repo B的远端分支即可:
git push origin <repoB目标分支名>
补充说明
如果你需要保持repo B目标分支的提交历史线性,可以把
git merge替换为git rebase repo-a/<repoA的源分支名>,但注意rebase会重写提交历史,仅建议当前repo B目标分支是个人开发分支、无多人协作时使用。
如果后续不需要再从repo A拉取内容,可执行git remote remove repo-a删除添加的远程源。
方案优势
- 完整保留repo A分支的所有提交历史,方便后续溯源排查问题
- 合并流程和普通同仓库分支合并完全一致,学习成本低
- 无需中转仓库/中间导出文件,操作效率高
内容的提问来源于stack exchange,提问作者Rinael
相关产品推荐
相关产品推荐

