git多个远程仓库-创新互联

1. 前言

   用 GitHub 管理自己的开源项目有几年了,最近一年更新得比较多,仓库也越来越多越来越大。有时候感觉GitHub太慢,尤其是最近感觉更为明显,于是萌生了再找个国内类似GitHub的代码托管平台的想法,同时我也还想持续更新GitHub上的仓库,于是需要一个本地仓库(我自己的开发机)多个远程仓库(Github、码云、coding)。

创新互联是一家专业提供尼开远企业网站建设,专注与网站设计制作、网站制作、H5建站、小程序制作等业务。10年已为尼开远众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

2. 一个远程仓库的 git config

   我的开源项目 Nebula一个基于事件驱动的高性能TCP网络框架的git配置文件.git/config如下:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = https://github.com/Bwar/Nebula.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

3. 用 git 命令行添加多个远程仓库

   添加一个名为“ mirror ”的远程仓库:

git remote add mirror https://gitee.com/Bwar/Nebula.git

   执行完这条命令后 .git/config 文件内容变成了:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = https://github.com/Bwar/Nebula.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[remote "mirror"]
    url = https://gitee.com/Bwar/Nebula.git
    fetch = +refs/heads/*:refs/remotes/mirror/*

   此时已经是一个本地仓库,两个远程仓库。使用下面的命令可以分别从两个远程仓库拉取和推送到两个远程仓库。

git pull origin master 
git pull mirror master
git push origin master 
git push mirror master

4. 一条命令同时更新多个远程仓库

  目前我的开源项目只有我一个 contributor (计划2018年12月开始引入其他contributor),主要push比较少pull,输入多条命令我都觉得麻烦,一条命令将当前分支同时更新到两个远程仓库才能让我满意。于是改变一下,不用上面的mirror做法,直接在origin中添加一个url来实现一个本地仓库多个远程仓库。

git remote set-url --add origin https://gitee.com/Bwar/Nebula.git

  执行这条命令后 .git/config 内容变成:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = https://github.com/Bwar/Nebula.git
        url = https://gitee.com/Bwar/Nebula.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[remote "mirror"]
    url = https://gitee.com/Bwar/Nebula.git
    fetch = +refs/heads/*:refs/remotes/mirror/*

  之前添加的“ mirror ”留着或删掉都没关系,这时候我们一条命令即可更新两个远程仓库:

git push origin master

5. 免输入密码操作远程仓库

  执行远程仓库操作需要输入密码是件比较麻烦的事情,在配置文件的url里配上用户名和密码即可免掉这样的麻烦,提高操作效率。免输密码操作远程仓库还可以通过ssh方式实现,下面只给出https方式的免输密码配置:

url = https://${user}:${password}@github.com/Bwar/Nebula.git

  把上面配置中的“ ${user} ”和“ ${password} ”用你的远程仓库用户名和密码代入即可。

6. 直接修改 git 配置文件实现多个远程仓库

  上面通过 git remote 命令完成一个本地仓库多个远程仓库配置,这些命令实际上都是通过修改.git/config实现的,其实直接修改配置文件可能会更快,我就是直接修改配置文件完成。最后我的多个远程仓库配置如下:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = https://${user}:${password}@github.com/Bwar/Nebula.git
        url = https://${user}:${password}@gitee.com/Bwar/Nebula.git
        url = https://${user}:${password}@git.coding.net/Bwar/NebulaBootstrap.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

  完毕。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:git多个远程仓库-创新互联
网址分享:http://azwzsj.com/article/ccejed.html