Git使用小技巧之多個遠程倉庫


想要獲取更多文章可以訪問我的博客 - 代碼無止境

這是一個普通的工作日,小代正在勤勤懇懇的寫代碼。這時陳BOSS走到小代身邊,跟小代說:“我們的代碼需要同時推送到Github和碼雲兩個倉庫,你研究一下怎么搞吧。” 樂於研究和學習的小代自然是毫不猶豫的答應了下來。

准備工作

好,我們先來看下完成這篇文章的學習需要准備哪些東西。自然是一個本地的git倉庫。

mkdir git-test
cd git-test
git init
touch README.md

執行了這幾行命令之后,我們還需要在Github和碼雲上分別新建兩個遠程倉庫。到這里我們就有了一個和小代差不多的本地環境。下面我們就一起來看下小代是通過怎樣的操作來實現陳BOSS的需求的。

小代的操作

首先小代思考的是如何在一個項目中添加兩個遠程倉庫。經過一番搜索,小代知道了下面的命令可以給倉庫添加遠程倉庫。

git remote add [shortname] [url]

PS:我們解釋一下這行命令的兩個參數,第一個參數其實就是我們后面推送到這個遠程倉庫的時候都使用這個名稱來代替倉庫地址,第二個參數就是遠程倉庫的地址了,這句命令應該很好理解。

然后小代就在本地倉庫根目錄執行了下面兩行命令,為本地倉庫添加了兩個遠程倉庫。

git remote add gitee https://gitee.com/gancy/git-test.git
git remote add github https://github.com/ganchaoyang/git-test.git

然后我們修改README文件后,可以分別往兩個倉庫推送代碼。

git add *
git commit -m "first commit"
git push -u github master
git push -u gitee master

通過兩句git push命令我們確實可以向兩個遠程倉庫推送代碼,但是作為一個喜歡偷懶的程序員的小代同學絕不滿足於此,於是他就想有沒有一種方式可以一句命令就同時push到兩個遠程倉庫。於是乎就有了下面的操作。小代修改了.git/config文件中的內容。原文件內容如下:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "gitee"]
	url = https://gitee.com/gancy/git-test.git
	fetch = +refs/heads/*:refs/remotes/gitee/*
[remote "github"]
	url = https://github.com/ganchaoyang/git-test.git
	fetch = +refs/heads/*:refs/remotes/github/*
[branch "master"]
	remote = gitee
	merge = refs/heads/master

修改后的內容為:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://gitee.com/gancy/git-test.git
    url = https://github.com/ganchaoyang/git-test.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

只是將兩個remote合並成了一個而已,然后再執行git push命令就會發現,會一次性向兩個倉庫push代碼了。然后,小代同學就下班回家吃飯了。

結束語

這篇文章,主要是講了如何同時向多個遠程倉庫推送代碼。雖然平時使用場景不多,但是偶爾遇到了這樣的需求還是很實用的。如果你喜歡我的文章,可以掃描下方二維碼關注代碼無止境公眾號。

掃碼關注“代碼無止境”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM