今天遇到一个新的需求, 要把现在的代码再推送到一个新的代码库,并不定期自动更新代码,实现如下效果
同一项目使用两个或者多个远程代码仓库管理, 有两种情况
第一种:从刚开始建项目,需求就是代码要上传到两个或多个仓库
这种情况比较好处理
步骤如下,
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仓库的地址
- 从新建的代码库更新一下,合并节点(代码库要求是新库)�
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://xie_bxbak@x.dev.bx/git/bxbak/viop/sysmagoor git push -u origin --all git push -u origin --tags