0%

Git使用技巧:推送到多个远程仓库

.git/config 文件中,添加如下语句:

1
2
3
4
5
[remote "all"]
url = git@github.com:account/repo-name.git
fetch = +refs/heads/*:refs/remotes/github/*
url = git@gitee.com:account/repo-name.git
fetch = +refs/heads/*:refs/remotes/gitee/*

前两句指明了远程仓库地址,下面两句如果不加,会导致推送时仅完成了push,而本地保存的分支情况并没有得到更新,更新分支的过程即fetch。当我们使用命令git push origin master推送到远程仓库时,推送结束后git会自动执行一次fetch操作,保证本地与远程的分支情况一致。

定义自动执行的fetch操作通过在.git/config文件中添加如上所示的fetch语句实现,否则当输入git branch -v -a查看所有分支时,会出现如下所示尴尬情况。

image-20201027190748366

不过加上了两句fetch好像也没用,只有写在前面的fetch语句中的仓库能更新远程分支情况,就像下面这样

image-20201027193917687

打开终端输入 git push all,即可实现推送到多个仓库。在.git/config下方找到如下语句,将remote的值改为all,仅输入git push即可实现多仓库推送(使用VS Code的版本控制系统的点击推送功能需要用到这个设置)

1
2
[branch "master"]
remote = all