0
点赞
收藏
分享

微信扫一扫

如何用 Git 一次推送代码到多个远程库

参考

背景介绍

对我们开发来讲,通常情况下都是一个项目连接一个远程,常见的远程仓库有 GitHub、GitLab、Gitee 等。

但是,偶尔会遇到一个仓库需要推到不同的远程去,例如我们公司内部一个远程,客户那也有一个远程,客户要求两者要同步,因为内部 VPN 的限制,我们当然不可能让客户访问公司的内网。

于是问题来了,如何一次 push 到两个远程?

set-url

平时,我们与远程库建立联系是通过:

git remote add origin git@github.com:[username]/[repository]

很少会用到 set-url,但是 set-url 可是很强大的,比如现在你想更换目前使用的远程库,只需要一行代码:

git remote set-url origin git@github.com:[username]/[repository]

当前库就被换成远程库了。

根据你多年使用 Git 的经验,你肯定会想到 set-url 加个参数是不是就能满足我们的需求——如何一次 push 到两个远程。

没错,你还真猜对了,set-url 有三个参数:

  • --add 在当前远程连接地址的基础上,继续添加远程连接地址
  • --push 赋予我们 push 的权限,默认就带
  • --delete 删除项目的远程连接地址

最后

第一步,添加远程连接:

git remote add all git@github.com:[username]/[repository]

第二部,在当前远程连接的基础上,继续添加两个远程连接:

git remote set-url --add --push all git@github.com:[username]/[repository]
git remote set-url --add --push all git@bitbucket.org:[username]/[repository]

通过 git remote -v 看下此时的远程连接地址:

all git@github.com:[username]/[repository] (fetch)
all git@github.com:[username]/[repository] (push)
all git@bitbucket.org:[username]/[repository] (push)

OK 了,大功告成。

文章写完了,我的吐槽下简书,设置发布样式一直有 bug,输入摘要就从来没有生效过。

这个乱乱的排版真是无语?。

举报

相关推荐

0 条评论