同一个项目push到多个远程Git仓库

纸扎戏偶

今天遇到一个新的需求, 要把现在的代码再推送到一个新的代码库,并不定期自动更新代码,实现如下效果

我创建了一个项目,然后通过下面的命令 push 到了 GitHub 上。如何再将这个项目 push 到其他远程仓库呢?

git remote add github https://github.com/zxbetter/test.git
git push -u github master

同一项目使用两个或者多喝远程代码仓库管理, 有两种情况
第一种:从刚开始建项目,需求就是代码要上传到两个或多个仓库

方法一: 使用 git remote add 命令

A. 本地创建项目
B. 打开终端 cd/项目 git int
C. 去对应的两个代码仓库创建本地代码要存储的目录, 并生成一个git地址
D. 回到终端 分别执行下面语句

git remote add 仓库A https://项目A仓库的地址
git remote add 仓库B https://项目B仓库的地址

(仓库 A,B 的名字可以自己起,用来区分哪个远程仓库)

查看远程仓库的情况

git remote -v
github  https://github.com/piaoyun.cc/test.git (fetch)
github  https://github.com/piaoyun.cc/test.git (push)
oschina https://git.oschina.net/piaoyun.cc/test.git (fetch)
oschina https://git.oschina.net/piaoyun.cc/test.git (push)

可以看到已经有两个远程仓库了

git push 仓库A master:master
git push 仓库B master:master

pull 的时候也是两次

git pull 仓库A master
git pull 仓库B master

如果是多个代码仓库,每次都要push 和pull 多次, 比较繁琐, 可以使用下面的方法

方法二: 使用 git remote set-url 命令

1.删除方法一的 oschina 远程仓库。

git remote rm oschina

2.使用如下命令添加远程仓库。

git remote set-url --add github https://git.oschina.net/zxbetter/test.git

3.查看远程仓库情况。可以看到 github 远程仓库有两个 push 地址。这种方法的好处是每次只需要 push 一次就行了。

git remote -v
github  https://github.com/zxbetter/test.git (fetch)
github  https://github.com/zxbetter/test.git (push)
github  https://git.oschina.net/zxbetter/test.git (push)

方法三: 修改配置文件

打开 .git/config 找到 [remote "github"],添加对应的 url 即可,效果如下。这种方法其实和方法二是一样的。


[remote "github"]
url = https://github.com/zxbetter/test.git
fetch = +refs/heads/*:refs/remotes/github/*
url = https://git.oschina.net/zxbetter/test.git

关于 git pull关于 git pull

方法二和三在 push 的时候比较方便。但是在 pull 的时候只能从方法三中的第一个 url 地址拉取代码。而方法一则不存在这种问题(可能要解决冲突)。
所以,如果只进行 push 操作,推荐方法二和三,如果也要进行 pull 操作,推荐方法一。

参考资料:
一个项目push到多个远程Git仓库:
https://segmentfault.com/a/1190000011294144
git同一项目使用多个远程仓库
:https://www.jianshu.com/p/4cd46619b3a5
(7条消息)Git提交到多个远程仓库:
https://blog.csdn.net/isea533/article/details/41382699
将项目提交到两个git仓库(github和oschina)
:https://www.iteye.com/blog/feitianbenyue-2376791

文章版权声明:除非注明,否则均为我爱教程术原创文章,转载或复制请以超链接形式并注明出处。