前言
无论是GitHub还是Gitee(码云),大家应该已经学会如何实现远程和本地的同步管理。对于全世界大部分的程序员来说,都会使用GitHub进行项目管理,然而国内使用时下载/上传速度太慢,所以中国的程序员又使用码云(Gitee)进行项目管理,这样下载速度就快了许多。但是,用Gitee又显得很小众,不主流。所以,能不能实现GitHub,Gitee与本地仓库三者之间的同步管理呢?
答案是可以的。因为git本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。
步骤
结合廖雪峰Git教程,总结了一下GitHub,Gitee与本地仓库同步管理的步骤,供大家参考。
假设目前已经在本地建了一个名为learn_git的本地仓库,并与远程GitHub关联。
正常在本地仓库执行git remote -v
,可以查看当前本地仓库与远程仓库的关联信息,如下图所示:
可以看到当前项目与远程名为origin的GitHub仓库相关联(两条信息)。
我们之前在学习git推送的时候,都是按照教程将远程名字起名为origin,当然在只有一个仓库的时候这个通俗易懂的名字没有任何问题。但是现在我们要同时同步Gitee和GitHub,为了区分Gitee和GitHub,我们将Gitee的远程仓库起名为Gitee,GitHub远程仓库起名为GitHub。
具体操作如下:
首先在Gitee上创建一个远程仓库(当然,直接导入GitHub仓库也可以),这里以导入为例。
导入成功后,可以看到当前Gitee和GitHub上两个仓库的内容是一样的。
回到本地仓库,先删除名为origin的远程分支:
git remote rm origin
再将Gitee和GitHub对应的SSH地址与本地仓库相关联。
git remote add GitHub [email protected]:xcalan/learn_git.git
git remote add Gitee [email protected]:xcalan/learn_git.git
这时再执行git remote -v
,可以看到当前本地仓库同时和两个远程仓库都关联了,名字分别为GitHub和Gitee:
这时在本地进行相应的修改操作,只要分别执行下面这两条语句(不分先后顺序),就可以将本地commit信息同时push到两个远程仓库的主分支(master)中。
git push GitHub master
git push Gitee master
成功:
再回到GitHub和Gitee,刷新页面,可以看到两个远程仓库和本地都已经同步。
结语
当然,理论上讲,这种方式也可以同时关联好多远程仓库,大家可以自行摸索。