参考
背景介绍
对我们开发来讲,通常情况下都是一个项目连接一个远程,常见的远程仓库有 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,输入摘要就从来没有生效过。
这个乱乱的排版真是无语😓这个乱乱的排版真是无语😓。
当前时间 Tuesday, May 11, 2021 15:55:55
网友评论