如何跨Git仓库同步分支:将项目B的Main分支同步至项目A的Base分支
跨独立Git仓库分支同步操作指南
首次配置步骤
在项目A的本地仓库根目录执行以下操作:
- 添加项目B的远程仓库作为上游源,可自定义别名(示例用
upstream-b便于识别):git remote add upstream-b <项目B的Git仓库地址> - 验证远程源添加成功,输出中能看到
upstream-b的对应地址即可:git remote -v - 拉取项目B远程仓库的所有分支代码:
git fetch upstream-b - 基于项目B的main分支创建项目A的本地base分支:
git checkout -b base upstream-b/main - 将本地base分支推送到项目A的远程仓库,同时设置上游关联:
git push -u origin base
后续同步项目B更新的操作
每次项目B的main分支有更新需要同步到项目A的base分支时,执行以下步骤:
- 切换到项目A的本地base分支:
git checkout base - 拉取项目B的最新代码:
git fetch upstream-b - 合并项目B main分支的最新代码到当前base分支:
git merge upstream-b/main --no-ff
如果执行合并时提示代码冲突,手动解决所有冲突文件后,执行git commit提交冲突修改即可 - 将合并后的最新base分支代码推送到项目A的远程仓库:
git push origin base
可选优化说明
- 如果你需要base分支保持线性提交历史,可以将
git merge命令替换为git rebase upstream-b/main,注意rebase操作后推送需要加--force参数,操作前确认没有其他开发者在base分支上提交独立代码。 - 如需自动同步,可以配置仓库的CI定时任务,定期执行上述同步流程,出现合并冲突时触发通知提醒管理员手动处理即可。
内容的提问来源于stack exchange,提问作者Amr Khalil
相关产品推荐
相关产品推荐

