Hello welcome to Yzone.net

git 提交记录到多个仓库

有时候一个项目有多个远程仓库地址,想要在本地改动代码后,方便快速的同时提交到多个远程仓库区。

假设在git@osc有一个仓库

$ git remote -v
origin  https://git.oschina.net/inhere/php-validate.git (fetch)
origin  https://git.oschina.net/inhere/php-validate.git (push)

我想同时将本地的改动提交的github上 https://git.oschina.net/inhere/php-validate.git

方法一,新增远程仓库

通常的做法是再添加远程仓库

$ git remote add github https://git.oschina.net/inhere/php-validate.git

再查看:

$ git remote -v
github  https://github.com/inhere/php-validate.git (fetch)
github  https://github.com/inhere/php-validate.git (push)
origin  https://git.oschina.net/inhere/php-validate.git (fetch)
origin  https://git.oschina.net/inhere/php-validate.git (push)

执行两次push:

$ git push origin master
$ git push github master

这样就可以把 代码提交到 git@osc 和 github 了

方法二,新增一个remote,追加多个url

方法一有个问题, 每次push都得push两次,若仓库再多些,就更麻烦了。

更简便的方法是:

  • 添加一个remote,这里是all,也可以是别的名字
$ git remote add all https://github.com/inhere/php-validate.git

再将另一个仓库的地址追加到 all, 而不是新增 remote:

$ git remote set-url --add all https://github.com/inhere/php-validate.git
  • 也可以直接编辑项目目录下的 .git/config 文件
$ git config -e

再打开的文件中手动添加一个 远程仓库,添上多个仓库的url地址:

[remote "all"]
    url = https://github.com/inhere/php-validate.git
    url = https://git.oschina.net/inhere/php-validate.git

然后就可以使用 git push all 一次性推送代码更新到多个远程仓库了


分类 git    标签 git , vcs
文档结构