git多個(gè)遠(yuǎn)程倉(cāng)庫(kù)

1. 前言

   用 GitHub 管理自己的開(kāi)源項(xiàng)目有幾年了,最近一年更新得比較多,倉(cāng)庫(kù)也越來(lái)越多越來(lái)越大。有時(shí)候感覺(jué)GitHub太慢,尤其是最近感覺(jué)更為明顯,于是萌生了再找個(gè)國(guó)內(nèi)類似GitHub的代碼托管平臺(tái)的想法,同時(shí)我也還想持續(xù)更新GitHub上的倉(cāng)庫(kù),于是需要一個(gè)本地倉(cāng)庫(kù)(我自己的開(kāi)發(fā)機(jī))多個(gè)遠(yuǎn)程倉(cāng)庫(kù)(Github、碼云、coding)。

成都創(chuàng)新互聯(lián)于2013年開(kāi)始,先為舒蘭等服務(wù)建站,舒蘭等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為舒蘭企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

2. 一個(gè)遠(yuǎn)程倉(cāng)庫(kù)的 git config

   我的開(kāi)源項(xiàng)目 Nebula一個(gè)基于事件驅(qū)動(dòng)的高性能TCP網(wǎng)絡(luò)框架的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 命令行添加多個(gè)遠(yuǎn)程倉(cāng)庫(kù)

   添加一個(gè)名為“ mirror ”的遠(yuǎn)程倉(cāng)庫(kù):

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

   執(zhí)行完這條命令后 .git/config 文件內(nèi)容變成了:

[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/*

   此時(shí)已經(jīng)是一個(gè)本地倉(cāng)庫(kù),兩個(gè)遠(yuǎn)程倉(cāng)庫(kù)。使用下面的命令可以分別從兩個(gè)遠(yuǎn)程倉(cāng)庫(kù)拉取和推送到兩個(gè)遠(yuǎn)程倉(cāng)庫(kù)。

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

4. 一條命令同時(shí)更新多個(gè)遠(yuǎn)程倉(cāng)庫(kù)

  目前我的開(kāi)源項(xiàng)目只有我一個(gè) contributor (計(jì)劃2018年12月開(kāi)始引入其他contributor),主要push比較少pull,輸入多條命令我都覺(jué)得麻煩,一條命令將當(dāng)前分支同時(shí)更新到兩個(gè)遠(yuǎn)程倉(cāng)庫(kù)才能讓我滿意。于是改變一下,不用上面的mirror做法,直接在origin中添加一個(gè)url來(lái)實(shí)現(xiàn)一個(gè)本地倉(cāng)庫(kù)多個(gè)遠(yuǎn)程倉(cāng)庫(kù)。

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

  執(zhí)行這條命令后 .git/config 內(nèi)容變成:

[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 ”留著或刪掉都沒(méi)關(guān)系,這時(shí)候我們一條命令即可更新兩個(gè)遠(yuǎn)程倉(cāng)庫(kù):

git push origin master

5. 免輸入密碼操作遠(yuǎn)程倉(cāng)庫(kù)

  執(zhí)行遠(yuǎn)程倉(cāng)庫(kù)操作需要輸入密碼是件比較麻煩的事情,在配置文件的url里配上用戶名和密碼即可免掉這樣的麻煩,提高操作效率。免輸密碼操作遠(yuǎn)程倉(cāng)庫(kù)還可以通過(guò)ssh方式實(shí)現(xiàn),下面只給出https方式的免輸密碼配置:

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

  把上面配置中的“ ${user} ”和“ ${password} ”用你的遠(yuǎn)程倉(cāng)庫(kù)用戶名和密碼代入即可。

6. 直接修改 git 配置文件實(shí)現(xiàn)多個(gè)遠(yuǎn)程倉(cāng)庫(kù)

  上面通過(guò) git remote 命令完成一個(gè)本地倉(cāng)庫(kù)多個(gè)遠(yuǎn)程倉(cāng)庫(kù)配置,這些命令實(shí)際上都是通過(guò)修改.git/config實(shí)現(xiàn)的,其實(shí)直接修改配置文件可能會(huì)更快,我就是直接修改配置文件完成。最后我的多個(gè)遠(yuǎn)程倉(cāng)庫(kù)配置如下:

[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

  完畢。

當(dāng)前題目:git多個(gè)遠(yuǎn)程倉(cāng)庫(kù)
鏈接分享:http://muchs.cn/article46/ihddhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、定制網(wǎng)站網(wǎng)站導(dǎo)航、關(guān)鍵詞優(yōu)化、App設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)