社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

如何将一个 Git 项目关联到两个远程仓库(且不出错)

脚本之家 • 2 天前 • 28 次点击  
将 脚本之家 设为“星标

第一时间收到文章更新

图片

来源 | 大迁世界 (ID:qq449245885)

说实话,有时候你就是不想选边站。

也许公司用的是 GitHub,但团队的 CI/CD 流程跑在 GitLab 上; 或者你正在测试迁移方案; 又或者你就是喜欢多备份备份。

懂你的心情。

好消息是:完全可以将本地 Git 仓库同时关联多个远程仓库,并且用一次推送操作同步更新。

这招已经在多个生产项目中实测过了,真的比想象中简单得多。

下面带你一步步操作,让你的 .git/config 文件安然无恙。


一个本地项目,两个远程仓库,一条命令推送

无需额外克隆,无需复杂脚本。


🧱 第一步:准备本地仓库

可以用现有仓库,也可以新建一个:

git init

如果已经连接了 GitHub 或其他远程,执行:

git remote -v

会看到类似输出:

origin  git@github.com:username/repo.git (fetch)
origin  git@github.com:username/repo.git (push)

🔗 第二步:添加第二个远程仓库

假设第二个远程是 GitLab,远程名可以自定义,常见如 origin2 或 gitlab,这里用清晰的 gitlab :

git remote add gitlab git@gitlab.com:username/repo.git

再次查看:

git remote -v

输出会是:

origin  git@github.com:username/repo.git (fetch)
origin  git@github.com:username/repo.git (push)
gitlab  git@gitlab.com:username/repo.git (fetch)
gitlab  git@gitlab.com:username/repo.git (push)

这样你就同时关联了两个远程。


📤 第三步:同时推送到两个远程仓库

有两种方式:

方式一:手动分别推送

git push origin main
git push gitlab main

灵活且安全,但要多执行一次命令。

方式二:配置多推送地址,实现一次命令推送两个远程

编辑 .git/config,在 [remote "origin"] 下添加多条 pushurl

[remote "origin"]
    url = git@github.com:username/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    pushurl = git@github.com:username/repo.git
    pushurl = git@gitlab.com:username/repo.git

此后执行:




    
git push origin main

就会同步推送到 GitHub 和 GitLab 两个仓库。


🔥 小贴士:

如果用于 CI/CD,请确保两个仓库的流水线不会因同一提交重复触发,这点很重要。


🧼 额外操作:重命名或删除远程

重命名远程:

git remote rename origin github

删除远程:

git remote remove gitlab

🤷‍♀️ 为什么要用两个远程?

  • 备份:GitHub 崩了,GitLab 还在;
  • 迁移:试用新平台,旧平台继续线上运行;
  • 镜像:想多地方展示代码,简单又直观;
  • CI/CD 分离:GitHub 管理代码,GitLab 管理部署。

🧃 个人感想

这招救场无数。

无论面对多个客户、团队,还是平台环境,能从同一个本地库同时推送多个远程仓库,是开发效率的倍增器。

而且,每次用起来都感觉自己像个大佬。

赶紧把这招搬进你的工作流吧!

END

图片


  推荐阅读:
  1. 微软AI公开折磨微软员工,修Bug唯一贡献是改了PR标题,GitHub评论区成吃瓜现场
  2. 面试吹牛吹过头了,被面试官说让我上传github看看源码,这下老实了,我就做了个半成品,有些功能都没实现,已老实
  3. 5年经验的新同事问我,你们开发是用 git rebase 还是 git merge?我当时就蒙了。。。
  4. 打拳打到编程语言上,希望你是真反串

  5. 在单位上班千万要记住:只要你的工资每月按时发放,岗位没有动,待遇没有减,就不要太在意其他人,该上班上班,把他们当路人,你就赢了。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183160
 
28 次点击