git如何一个命令提交代码到多个代码仓库
有时候会因为各种我们需要把代码同步到多个版本库,比如国内的一般会有两个代码仓库,一个是github,一个是gitee。有时候我们还会用到阿里云和腾讯云的代码库。如果我们用git remote add的命令我们将会添加四个代码仓库。比如我们先添加github:
git remote add github https://github.com/test/test.git
然后依次添加gitee,aliyun,
git remote add gitee https://gitee.com/test/test.git
git remote add ali https://code.aliyun.com/test/test.git
git remote add tencent https://git.code.tencent.com/test/test.git
如果我们本地做了一次修改,然后同步到远端可能需要git push github/gitee/ali/tencent执行四次,很浪费时间。
有没有什么方法可以一个命令就同步所有的代码呢? 答案是有的!
方案1:
遍历分支,然后一个一个推送,使用--all推送本地所有的分支。
git remote | xargs -L1 git push --all
如果你只想推送一个分支,那么就把--all替换为master(或者你的分支名)
git remote | xargs -L1 -I R git push R master
你也可以使用git别名,重写上面的命令
git config --global alias.pushall '!git remote | xargs -L1 git push --all'
以后运行 git pushall 就可以实现推送所有的分支到不同的远端代码库了
方案2:
创建一个all的远程分支,然后添加不同的仓库地址:
git remote add all https://github.com/test/test.git
git remote set-url --add all https://gitee.com/test/test.git
git remote add all https://xxx.com/test/test.git
然后使用git push all --all就行了
综合而言,感觉方案2更友好