如何將一個項目同時提交到GitHub和Gitee(碼云)上
如果你是GitHub的開源作者,是否因為GitHub訪問慢或圖片不顯示而苦惱?你是否想讓你的代碼讓更多人看到?那么,你可以將一套開源代碼同時提交到多個開源平臺。
當(dāng)然,如果你已經(jīng)在這么做了,但是只是手動的復(fù)制、分別上傳,那么更本篇文章更值得你一看。
前言
GitHub幾乎是每個程序員必逛的地方,但訪問GitHub有一個明顯的問題,就是網(wǎng)速比較慢,現(xiàn)在GitHub上很多圖片信息還沒辦法正常顯示。
Gitee(碼云)這幾年在國內(nèi)發(fā)展勢頭迅猛,下面我們就以一套代碼同時提交到GitHub和Gitee為示例來,來講解如何配置Git達到同時上傳代碼到多個平臺。
GitHub上創(chuàng)建一個倉庫
在GitHub上創(chuàng)建一個倉庫:

當(dāng)然,如果對應(yīng)的倉庫已經(jīng)存在,則可跳過此步驟。筆者在GitHub上已經(jīng)存在一個倉庫了,上圖只是示例。
Gitee上創(chuàng)建對應(yīng)倉庫
在Gitee上創(chuàng)建一個對應(yīng)的倉庫,最好同名:

在創(chuàng)建時,除了填寫必要信息之后,最下面一欄選擇“導(dǎo)入已有倉庫”,然后將GitHub上的倉庫地址(Https形式)copy過來,直接粘貼在對應(yīng)位置。Gitee會檢測并給出提示。
點擊創(chuàng)建,稍等片刻,發(fā)現(xiàn)倉庫已經(jīng)被完美同步過來了:

我的關(guān)于shiro的一個倉庫地址:https://gitee.com/secbro/shiro 。訪問會發(fā)現(xiàn),不僅同步過來了,而且在GitHub上無法顯示的圖片瞬間顯示出來了。
從此刻起,你的開源項目曝光率輕松增加了一倍,是不是很簡單而又很有成就感。
手動更新同步
經(jīng)過上面的步驟雖然已經(jīng)完成了庫的同步操作,但你是否發(fā)現(xiàn),當(dāng)你提交代碼到GitHub上時,Gitee上并沒有把修改的代碼同步過來。
此時可以有兩種方案,先說第一種,手動同步。當(dāng)GitHub上的代碼更新了,登錄Gitee在項目名稱處點擊下圖中的圖標(biāo),即可強制同步更新:

這種操作適合非實時同步,可能隔一段時間自己登錄賬號進行一次同步。
Git提交同步
第二種方式是Git同步提交多個倉庫,這里以Mac操作系統(tǒng)為例,其他操作系統(tǒng)搭建對應(yīng)找一下相關(guān)的命令和操作。
首先,將GitHub的倉庫clone到本地,比如執(zhí)行以下命令:
git?clone[email protected]:secbr/shiro.git
然后進入本地項目的根目錄,在根目錄下會有一個.git的隱藏目錄。
192:shiro?zzs$?ls?.git
COMMIT_EDITMSG?ORIG_HEAD?description?info??packed-refs
FETCH_HEAD?branches?hooks??logs??refs
HEAD??config??index??objects
找到.git下面的config文件,通過vi命令進行修改,筆者原本文件內(nèi)容如下:
[core]
????????repositoryformatversion?=?0
????????filemode?=?true
????????bare?=?false
????????logallrefupdates?=?true
????????ignorecase?=?true
????????precomposeunicode?=?true
[remote?"origin"]
[email protected]:secbr/shiro.git
????????fetch?=?+refs/heads/*:refs/remotes/origin/*
[branch?"main"]
????????remote?=?origin
????????merge?=?refs/heads/main
修改之后變?yōu)椋?/p>
[core]
????????repositoryformatversion?=?0
????????filemode?=?true
????????bare?=?false
????????logallrefupdates?=?true
????????ignorecase?=?true
????????precomposeunicode?=?true
[remote?"origin"]
????????//?github的倉庫地址
[email protected]:secbr/shiro.git
????????//?gitee的倉庫地址
[email protected]:secbro/shiro.git
????????fetch?=?+refs/heads/*:refs/remotes/origin/*
[branch?"main"]
????????remote?=?origin
????????merge?=?refs/heads/main
也就是說,在原來的github倉庫地址下面再添加一個url配置,指向gitee的地址。
當(dāng)然,這里有一個前提條件,Gitee和GitHub的賬號的公私鑰為同一套。
此時再修改本地代碼,進行提交,你會發(fā)現(xiàn)GitHub和Gitee上的代碼同時被修改了。是不是很cool?
小結(jié)
很多時候,我們都在用“假勤奮”來麻痹自己,看起來很努力的樣子。比如當(dāng)遇到上述同步代碼的問題,如果不深入研究一下,只是通過手動的形式來搬代碼,雖然看起來很勤奮,但是比不上一行配置,一行命令。
當(dāng)然,上述實例只是在GitHub和Gitee兩個倉庫同步代碼,除此之外還可以在GitLab、Bitbucket或是自己搭建的Git服務(wù)器上用同樣的方式同步代碼。
不過,建議根據(jù)具體情況而定,最好不要超過兩個,不然提交倉庫的時候可能會因為網(wǎng)絡(luò)原因?qū)е潞臅r比較長。
如果你覺得這篇文章不錯,那么,下篇通常會更好。關(guān)注一下【公眾號】或添加微信好友(微信號:541075754),都是OK的。
? 和花一輩子都看不清的人,
? 注定是截然不同的搬磚生涯。



