掘金文章归档 · 第 28 篇 Git / 工程化 系列 7/8 Gitee · Git

gitee 多分支,指向不同的代码源

多远程仓库关联:一个仓库同步 Gitee 与 GitHub 的不同分支代码

原文作者:随意_(掘金) | juejin.cn/post/7487861752341757962 | 发布于 2025-04-01 | 阅读 254 · 约 1 分钟

0背景:为什么需要多代码源

有时候需要在同一个项目的不同分支中创建不同的代码源。比如我们基于 element-plus 创建一个自己的组件库,但是想要 element-plus 升级的时候,需要 merge 其升级的代码,这就需要我们创建一个分支,源是 element-plus 的,每次更新则 merge 到自己的组件库分支。

📌 下面以 Gitee 和 GitHub 为例:在 Gitee 创建仓库,其中某一个分支的源是 GitHub 的。

1详细流程

步骤 1:Gitee 创建代码仓库,并上传初始代码

此处省略,请自行创建并初始化代码,可以是 element-plus 的某一个版本。

步骤 2:关联远端的 GitHub 源码仓库(配置多个远程仓库)

# 添加Gitee远程仓库(假设已存在)
git remote add gitee <gitee仓库地址>

# 添加GitHub远程仓库
git remote add github <github仓库地址>

步骤 3:从 Gitee 拉取代码并创建分支

# 从Gitee拉取代码
git fetch gitee

# 切换到Gitee的主分支(假设是main)
git checkout -b main gitee/main

# 创建并切换到新分支 后期会推送到gitee
git checkout -b feature-v3.1.0

步骤 4:从 GitHub 拉取代码并覆盖当前分支

# 从 GitHub拉取代码
git fetch github

# 合并 GitHub的代码到当前分支(可能会有冲突,需要手动解决)
git merge github/feature-v3.1.0 --allow-unrelated-histories

步骤 5:推送新分支到指定远程仓库

git push -u gitee feature-v3.1.0
⚠️ 注意:merge 不同来源的历史时使用 --allow-unrelated-histories 允许合并无关历史;如遇冲突需手动解决后再提交。
✅ 总结:通过 git remote add 添加多个远程仓库,再配合 fetch / merge / push 指定仓库名,即可让同一项目的不同分支指向不同的代码源,随上游版本更新 merge 即可。