git push origin master一次提交多个远程仓库

发布时间 2023-04-10 21:49:01作者: 兜里还剩五块出头

一、问题背景

有时候我们可能创建了一个开源项目,想同时在多个远程地址上推送,比如一个平台上的多个仓库,或者不同平台上的仓库进行推送,那么我们可能希望运行一次git push origin master,就希望多个远程仓库都得到代码更新。

二、解决问题

开始前的准备工作:

我首先在D盘上创建了一个typescript_demo的文件夹,然后使用git init初始化仓库,typescript_demo里面是一些ts demo,此处请忽略。

 

 

 然后分别在github,gitee两个平台创建typescript_demo的仓库,此时就做好了准备工作。

 

1.首先使用git remote -v进行查看远程仓库的一些信息

git remote -v

 

 

 可以看到我此时项目的远程仓库信息为空。

2.使用 语法为:git remote add <name> <url>,进行添加远程仓库。name表示远程仓库名称【昵称】, url表示远程仓库的地址

git remote add origin https://gitee.com/hmy001/typescript_demo.git

这里新建了一个名为origin的远程仓库名称,其地址为:https://gitee.com/hmy001/typescript_demo.git

 使用git remote -v

 

 

 可以看到远程仓库origin已经新建成功,并且push【推送】,fetch【抓取】,地址都是从 https://gitee.com/hmy001/typescript_demo.git。

3.追加一个远程仓库,语法:git remote set-url  --add <name>  <url> ,其中name表示已经存在的远程名称,url表示追加的远程仓库的地址。

现在我们追加github上的一个新的远程仓库:https://github.com/hmy001/typescript_demo.git

例子:

git remote set-url --add otherOrigin https://github.com/hmy001/typescript_demo.git

 

 

 上面我们可以看到,我们给 otherOrigin 追加一个远程仓库,出现了:no such remote 'otherOrigin ',提示我们没有这个远程仓库,所以追加的时候务必保证远程仓库已存在。

下面给origin追加一个远程仓库,即关联一个远程仓库。

 git remote set-url --add origin https://github.com/hmy001/typescript_demo.git

 

 

 这时候我们使用git remote -v 查看

 

 可以看到origin已经有三个了,新追加的github远程仓库在第三个。

这里的意思就是,我们给origin push时,gitee和github上面的两个远程仓库都会同步跟新。

使用git pull origin时,只会从gitee上拉取代码。

同理,追加第三个,第四个都是使用git remote set-url -add <name> <url>语法即可追加成功。

4.推送代码到多个远程仓库

 

git add .
git commit -m '提交typescript demo'
git push origin master

 

 git工具未登录的情况下,git push 时会弹出码云和github的登录窗口,输入账号密码即可,随后代码提交成功。

 

 

 

 不过github上显示代码提交时间为49分钟前,码云显示的时1个小时前,按道理时间不会相差这么多才对,因为github虽然国内访问比较慢,但是两者git push时,代码量不多的情况下不应该出现这种情况,这个问题不深究。