如何并行维护两个Git仓库,实现同步与双向合并?
独立实验仓库与主仓库的同步及合并方案
一、创建独立的NewPatterns仓库
- 克隆主仓库Patterns到本地并命名为NewPatterns:
git clone <Patterns仓库地址> NewPatterns - 进入本地NewPatterns目录:
cd NewPatterns - 删除默认关联的主仓库远程(避免误推回主仓库):
git remote remove origin - 添加NewPatterns专属的远程仓库地址:
git remote add origin <NewPatterns远程仓库地址> - 推送本地代码到新远程并设置默认上游分支:
git push -u origin main(主分支是master的话替换为master即可)
二、同步主仓库Patterns的更新到NewPatterns
- 把Patterns仓库添加为NewPatterns的上游远程:
git remote add upstream <Patterns仓库地址> - 拉取上游仓库的最新代码:
git fetch upstream - 合并上游主分支的更新到当前本地分支:
git merge upstream/main - 遇到冲突时,直接打开冲突文件手动修改,完成后执行
git add <冲突文件名>,再git commit完成合并 - 合并完成后推送到NewPatterns自己的远程仓库:
git push origin main
三、将NewPatterns的成熟功能合并回Patterns主仓库
- 方式一:若有Patterns仓库的推送权限,直接把实验分支推送到主仓库远程:
git push upstream <你的实验分支名>,然后在仓库平台(如GitHub/GitLab)发起PR,等待团队审核合并 - 方式二:单独克隆一份Patterns主仓库到本地,添加NewPatterns为远程:
git remote add new-patterns <NewPatterns远程地址>,拉取实验分支:git fetch new-patterns,合并到主分支:git merge new-patterns/<实验分支名>,解决冲突后推回Patterns远程
这种给本地仓库关联两个远程的方式完全能满足你的需求——既可以独立维护实验仓库NewPatterns、不干扰主仓库正常开发,又能随时同步主仓库的更新,最后还能把验证通过的功能合并回主仓库。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

