有时候我们可能需要将一个项目同时 push 到不同的远程仓库,有的人可能会想到每次改动都分别 push 到不同的远程仓库,但是这种方法十分的重复而又低效,非常之蛋疼,如何才能一次同时 push 到不同远程仓库呢,下面就给出方法。

大家应该都知道 git.oschina 有这样一个功能。

从 github 导入

这个功能可以直接将 github 的项目直接导入 git.oschina ,这样你的项目就同时存到了 github git.oschina ,十分的方便,所以这时候就非常的需要将本地代码同时 push 到这两个远程仓库,否则管理会非常的麻烦。

同时 push 到多个远程仓库

  • 先将需要 push 的代码 clone 到本地,我 clone github 仓库地址:
  • git@github.com:Jonzzs/SimpleNote.git
    
  • 我需要将这份代码同时 pushgithubgit.oschina 的仓库,下面是地址:
  • git@github.com:Jonzzs/SimpleNote.git
    git@git.oschina.net:Jonzzs/SimpleNote.git 
    
  • 用文本编辑器打开本地项目下 .git 文件夹中的 config 文件:
  • precomposeunicode = true [remote "origin"] // 修改此处 url = git@git.oschina.net:Jonzzs/SimpleNote.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master ignorecase = true precomposeunicode = true [remote "origin"] // 添加 pushurl 来同时 push 到多个远程仓库 url = git@git.oschina.net:Jonzzs/SimpleNote.git fetch = +refs/heads/*:refs/remotes/origin/* pushurl = git@git.oschina.net:Jonzzs/SimpleNote.git pushurl = git@github.com:Jonzzs/SimpleNote.git [branch "master"] remote = origin merge = refs/heads/master
  • 编辑完后 command + s 保存一下,大功告成,接着你使用 git push 就会同时 push 到这两个远程仓库,快测试一下吧。
  • 注意: 上面的 url 默认是你 clone 下来的地址不用管它,下面的 pushurl 默认最下面的地址是你执行 git pull 时的地址,所以你 git pull 想从哪个地址拉取,就写在最下面。 pushurl 可填写多个,你想要同时 push 几个远程仓库就填几个。另外远程仓库的名字可以不一样,但是 Branch 分支,两个仓库必须一样。