Noah's Blog

[转]Git提交到多个远程仓库

2015-07-24

转载自isea533的博客
文章地址: https://blog.csdn.net/isea533/article/details/41382699
英语原文来源:https://stackoverflow.com/questions/5785549/able-to-push-to-all-git-remotes-with-the-one-command
有两种做法,先看第一种

一、通过命令行进行操作

例如我有下面两个仓库:
Mybatis通用Mapper
https://git.oschina.net/free/Mapper.git
https://github.com/abel533/Mapper.git

在项目路径下打开Git Bash
添加一个remote,这里是all,也可以是别的名字
输入:git remote add all https://git.oschina.net/free/Mapper.git
再添加另一个:git remote set-url –add all https://github.com/abel533/Mapper.git
如果有多个,按照上面这一个命令进行添加.
提交的时候输入:git push all –all
这样就会一次提交到多个库了,上面命令输出如下:

$ git push all --all  
Counting objects: 19, done.  
Delta compression using up to 2 threads.  
Compressing objects: 100% (5/5), done.  
Writing objects: 100% (10/10), 644 bytes | 0 bytes/s, done.  
Total 10 (delta 3), reused 0 (delta 0)  
To https://github.com/abel533/Mapper.git  
   5b83845..ebd3836  master -> master  
Counting objects: 19, done.  
Delta compression using up to 2 threads.  
Compressing objects: 100% (5/5), done.  
Writing objects: 100% (10/10), 644 bytes | 0 bytes/s, done.  
Total 10 (delta 3), reused 0 (delta 0)  
To https://git.oschina.net/free/Mapper.git  
   5b83845..ebd3836  master -> master  

在操作完上面的添加命令后,如果我们打开.git/config文件,我们可以看到这样的配置:

[remote "all"]  
    url = https://github.com/abel533/Mapper.git  
    fetch = +refs/heads/*:refs/remotes/all/*  
    url = https://git.oschina.net/free/Mapper.git  

从这个配置可以引出我们的第二种方法.

二、直接配置.git/config文件

在配置中添加:

[remote "all"]  
    url = https://github.com/abel533/Mapper.git  
    url = https://git.oschina.net/free/Mapper.git  

有多少个远程库,就配置多少个url即可.
从这里可以看出,第一种方法生成的配置中还有一个fetch配置,这个配置可以完全去掉.