使用 Gitee 进行代码管理(包括本地仓库如何同时关联Git和Gitee)
目錄
- 使用Gitee
- 使用GitHub
使用Gitee
使用GitHub時(shí),國(guó)內(nèi)的用戶經(jīng)常遇到的問題是訪問速度太慢,有時(shí)候還會(huì)出現(xiàn)無法連接的情況(原因你懂的)。
如果我們希望體驗(yàn)Git飛一般的速度,可以使用國(guó)內(nèi)的Git托管服務(wù)——Gitee(gitee.com)。
和GitHub相比,Gitee也提供免費(fèi)的Git倉(cāng)庫(kù)。此外,還集成了代碼質(zhì)量檢測(cè)、項(xiàng)目演示等功能。對(duì)于團(tuán)隊(duì)協(xié)作開發(fā),Gitee還提供了項(xiàng)目管理、代碼托管、文檔管理的服務(wù),5人以下小團(tuán)隊(duì)免費(fèi)。
Gitee的免費(fèi)版本也提供私有庫(kù)功能,只是有5人的成員上限。
使用Gitee和使用GitHub類似,如果不會(huì),可以觀看我的前一篇GitHub的注冊(cè)與使用(小白教程)
我們?cè)贕itee上注冊(cè)賬號(hào)并登錄后,需要先上傳自己的SSH公鑰。選擇右上角用戶頭像 -> 菜單“修改資料”,然后選擇“SSH公鑰”,填寫一個(gè)便于識(shí)別的標(biāo)題,然后把用戶主目錄下的.ssh/id_rsa.pub文件的內(nèi)容粘貼進(jìn)去:
點(diǎn)擊“確定”即可完成并看到剛才添加的Key:
如果我們已經(jīng)有了一個(gè)本地的git倉(cāng)庫(kù)(例如,一個(gè)名為Git的本地庫(kù)),如何把它關(guān)聯(lián)到Gitee的遠(yuǎn)程庫(kù)上呢?
首先,我們?cè)贕itee上創(chuàng)建一個(gè)新的項(xiàng)目,選擇右上角用戶頭像 -> 菜單“+”,然后點(diǎn)擊“新建倉(cāng)庫(kù)”:
項(xiàng)目名稱最好與本地庫(kù)保持一致:
然后,我們?cè)诒镜貛?kù)上使用命令git remote add把它和Gitee的遠(yuǎn)程庫(kù)關(guān)聯(lián):
git remote add origin git@gitee.com:liaoxuefeng/learngit.git之后,就可以正常地用git push和git pull推送了!
如果在使用命令git remote add時(shí)報(bào)錯(cuò):
$ git remote add origin git@gitee.com:ITmxs/Git.git fatal: remote origin already exists.這說明本地庫(kù)已經(jīng)關(guān)聯(lián)了一個(gè)名叫origin的遠(yuǎn)程庫(kù),此時(shí),可以先用git remote -v查看遠(yuǎn)程庫(kù)信息:
$ git remote -v origin https://github.com/ITmxs/mygit.git (fetch) origin https://github.com/ITmxs/mygit.git (push)可以看到,本地庫(kù)已經(jīng)關(guān)聯(lián)了origin的遠(yuǎn)程庫(kù),并且,該遠(yuǎn)程庫(kù)指向GitHub。
我們可以刪除已有的GitHub遠(yuǎn)程庫(kù):
git remote rm origin再關(guān)聯(lián)Gitee的遠(yuǎn)程庫(kù)(注意路徑中需要填寫正確的用戶名):
git remote add origin git@gitee.com:liaoxuefeng/learngit.git此時(shí),我們?cè)俨榭催h(yuǎn)程庫(kù)信息:
$ git remote -v origin git@gitee.com:ITmxs/Git.git (fetch) origin git@gitee.com:ITmxs/Git.git (push)現(xiàn)在可以看到,origin已經(jīng)被關(guān)聯(lián)到Gitee的遠(yuǎn)程庫(kù)了。通過git push命令就可以把本地庫(kù)推送到Gitee上。
有的小伙伴又要問了,一個(gè)本地庫(kù)能不能既關(guān)聯(lián)GitHub,又關(guān)聯(lián)Gitee呢?
答案是肯定的,因?yàn)間it本身是分布式版本控制系統(tǒng),可以同步到另外一個(gè)遠(yuǎn)程庫(kù),當(dāng)然也可以同步到另外兩個(gè)遠(yuǎn)程庫(kù)。
使用多個(gè)遠(yuǎn)程庫(kù)時(shí),我們要注意,git給遠(yuǎn)程庫(kù)起的默認(rèn)名稱是origin,如果有多個(gè)遠(yuǎn)程庫(kù),我們需要用不同的名稱來標(biāo)識(shí)不同的遠(yuǎn)程庫(kù)。
仍然以Git本地庫(kù)為例,我們先刪除已關(guān)聯(lián)的名為origin的遠(yuǎn)程庫(kù):
git remote rm origin然后,先關(guān)聯(lián)GitHub的遠(yuǎn)程庫(kù):
git remote add github git@github.com:michaelliao/learngit.git注意,遠(yuǎn)程庫(kù)的名稱叫g(shù)ithub,不叫origin了。
接著,再關(guān)聯(lián)Gitee的遠(yuǎn)程庫(kù):
git remote add gitee git@gitee.com:liaoxuefeng/learngit.git同樣注意,遠(yuǎn)程庫(kù)的名稱叫g(shù)itee,不叫origin。
現(xiàn)在,我們用git remote -v查看遠(yuǎn)程庫(kù)信息,可以看到兩個(gè)遠(yuǎn)程庫(kù):
git remote -v gitee git@gitee.com:liaoxuefeng/learngit.git (fetch) gitee git@gitee.com:liaoxuefeng/learngit.git (push) github git@github.com:michaelliao/learngit.git (fetch) github git@github.com:michaelliao/learngit.git (push)如果要推送到GitHub,使用命令:
git push github master如果要推送到Gitee,使用命令:
git push gitee master可以看到gitee倉(cāng)庫(kù)里有了我今天的操作
這樣一來,我們的本地庫(kù)就可以同時(shí)與多個(gè)遠(yuǎn)程庫(kù)互相同步:
┌─────────┐ ┌─────────┐ │ GitHub │ │ Gitee │ └─────────┘ └─────────┘▲ ▲└─────┬─────┘│┌─────────────┐│ Local Repo │└─────────────┘使用GitHub
可以觀看我的前一篇GitHub的注冊(cè)與使用(小白教程)
我們一直用GitHub作為免費(fèi)的遠(yuǎn)程倉(cāng)庫(kù),如果是個(gè)人的開源項(xiàng)目,放到GitHub上是完全沒有問題的。其實(shí)GitHub還是一個(gè)開源協(xié)作社區(qū),通過GitHub,既可以讓別人參與你的開源項(xiàng)目,也可以參與別人的開源項(xiàng)目。
在GitHub出現(xiàn)以前,開源項(xiàng)目開源容易,但讓廣大人民群眾參與進(jìn)來比較困難,因?yàn)橐獏⑴c,就要提交代碼,而給每個(gè)想提交代碼的群眾都開一個(gè)賬號(hào)那是不現(xiàn)實(shí)的,因此,群眾也僅限于報(bào)個(gè)bug,即使能改掉bug,也只能把diff文件用郵件發(fā)過去,很不方便。
但是在GitHub上,利用Git極其強(qiáng)大的克隆和分支功能,廣大人民群眾真正可以第一次自由參與各種開源項(xiàng)目了。
如何參與一個(gè)開源項(xiàng)目呢?比如人氣極高的bootstrap項(xiàng)目,這是一個(gè)非常強(qiáng)大的CSS框架,你可以訪問它的項(xiàng)目主頁(yè)https://github.com/twbs/bootstrap,點(diǎn)“Fork”就在自己的賬號(hào)下克隆了一個(gè)bootstrap倉(cāng)庫(kù),然后,從自己的賬號(hào)下clone:
git clone git@github.com:michaelliao/bootstrap.git一定要從自己的賬號(hào)下clone倉(cāng)庫(kù),這樣你才能推送修改。如果從bootstrap的作者的倉(cāng)庫(kù)地址git@github.com:twbs/bootstrap.git克隆,因?yàn)闆]有權(quán)限,你將不能推送修改。
Bootstrap的官方倉(cāng)庫(kù)twbs/bootstrap、你在GitHub上克隆的倉(cāng)庫(kù)my/bootstrap,以及你自己克隆到本地電腦的倉(cāng)庫(kù),他們的關(guān)系就像下圖顯示的那樣:
┌─ GitHub ────────────────────────────────────┐ │ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ twbs/bootstrap │────>│ my/bootstrap │ │ │ └─────────────────┘ └─────────────────┘ │ │ ▲ │ └──────────────────────────────────┼──────────┘▼┌─────────────────┐│ local/bootstrap │└─────────────────┘如果你想修復(fù)bootstrap的一個(gè)bug,或者新增一個(gè)功能,立刻就可以開始干活,干完后,往自己的倉(cāng)庫(kù)推送。
如果你希望bootstrap的官方庫(kù)能接受你的修改,你就可以在GitHub上發(fā)起一個(gè)pull request。當(dāng)然,對(duì)方是否接受你的pull request就不一定了。
└─────────────────┘ 如果你想修復(fù)bootstrap的一個(gè)bug,或者新增一個(gè)功能,立刻就可以開始干活,干完后,往自己的倉(cāng)庫(kù)推送。如果你希望bootstrap的官方庫(kù)能接受你的修改,你就可以在GitHub上發(fā)起一個(gè)pull request。當(dāng)然,對(duì)方是否接受你的pull request就不一定了。總結(jié)
以上是生活随笔為你收集整理的使用 Gitee 进行代码管理(包括本地仓库如何同时关联Git和Gitee)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git常用的基本命令
- 下一篇: Git之常见的分支操作