Git 配置同时提交代码到多个仓库,如同步代码到 gitee、gitlab、github
背景
在日常开发中,我们可能会有这样子的一种需求,需要同时将代码提交到过个git仓库的情况
比如我的代码仓库是在 gitee,但是我又想要使用 gitlab 仓库的 ci/cd 功能,一开始每次提交都要分别推送到两个仓库,不仅麻烦还容易漏推导致版本不一致。后来研究了Git的远程仓库配置,发现只需简单设置就能实现“一次提交,多仓同步”,效率直接翻倍。
这篇就把从基础配置到进阶优化的全流程分享出来,亲测有用,非常推荐使用。
原理
Git的单个远程仓库(比如默认的origin)支持配置多个推送地址(push URL)。
平时我们用“git push origin main”推送时,Git会默认向origin的推送地址发送代码;
如果给origin配置多个推送地址,执行一次push命令,Git就会自动把代码推送到所有配置的地址上,这就是多仓库同步的核心逻辑。
简单说,远程仓库就像一个“分发中心”,我们可以给这个中心绑定多个“目的地”(Gitee、GitHub等),一次分发就能覆盖所有目的地。核心优势是:不用修改提交流程,保持“add→commit→push”的常规操作。
实现
首先,进入仓库中隐藏目录 .git 目录,找到 config 文件
vim config
## 找到
[remote "origin"]
url = https://xxxx:xxx@gitee.com/xxx/xxx.git # 这是你原来的仓库地址
url = https://username:password@gitlab.com/xxx/xxx.git # 添加你需要同步的仓库地址
fetch = +refs/heads/*:refs/remotes/origin/*添加你需要同步的仓库地址
url = https://<账号>:<密码或者密钥>@gitlab.com/<仓库地址>注意:如果你的 账号 / 密码 存在特殊字符,则需要进行转义
比如
@ —> %40
Gitlab 密钥的生成方法,如下图
以上是以 gitlab 为例,其他代码仓库的配置逻辑一致
配置完成后就可以测试下代码提交,修改代码,提交后验证下配置的仓库是否有提交更新记录
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/git-sync-warehouses/
备用原文链接: https://blog.fiveyoboy.com/articles/git-sync-warehouses/