git同一项目使用多个远程仓库

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


git同一项目使用多个远程仓库_第1张图片
Untitled Diagram.png
同一项目使用两个或者多喝远程代码仓库管理, 有两种情况

第一种:从刚开始建项目,需求就是代码要上传到两个或多个仓库

这种情况比较好处理

步骤如下,

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
可以看到已经有两个远程仓库了
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.删除方法一的 仓库A 远程仓库。
gitremote rm 仓库A
2.使用如下命令添加远程仓库。
git remote set-url --add 仓库B(名称) http://仓库A地址
3.查看远程仓库情况。可以看到 github 远程仓库有两个 push 地址。这种方法的好处是每次只需要 push 一次就行了。
git remote -v
git push仓库B master:master

第二种:项目中途增加仓库

比如一直在自己的公司git服务器上做开发, 突然有个需求, 让你中途把目前的代码再同步一份放到
另一个git服务器, 而且要不定期向这个服务器更新代码

操作: 现在已经有本地的代码和一个代码仓库了,

1.去要求存放代码的git服务器上创建一个git仓库
2.执行: git remote add XXXX https://项目A仓库的地址

  1. 从新建的代码库更新一下,合并节点(代码库要求是新库)�
    git pull bx_bank master
    From http://x'x'x'x'x'x'x'x'x'x'x'x'x'x'x*
    branch master -> FETCH_HEAD fatal: refusing to merge unrelated histories
    报如下错误
    原因:不可以合并不同没有相同结点的分支,如果需要合并两个不同结点的分支,那么需要在git pull添加一句代码--allow-unrelated-histories。于是修改之后的代码,假如源是XXXX,分支是master,那么执行以下名下

git pull XXXX master --allow-unrelated-histories
成功, 然后将现在的本地代码push 到远程仓库
git push XXXX master
大功搞成~~,定期执行git push XXXX master这个语句就好了

追加: 如果只是定期往B仓库同步推代码,B仓库又是一个新建仓库
可以直接加入 add remote ,然后push

git remote add origin http://[email protected]/git/bxbak/viop/sysmagoor git push -u origin --all git push -u origin --tags

你可能感兴趣的:(git同一项目使用多个远程仓库)