git使用oschina托管代碼


一、git代碼托管

  1、github官網,默認一般是放在這,但是該網站不是國內的,網速比較慢並且有時候連不上,私有庫是需要收費的。

  2、oschina,這個網站是私有公有庫都是免費的,網址是:https://gitee.com。

  3、自己搭一個git服務器,一般只能在局域網中使用,和svn類似。

二、oschina托管操作(碼雲)

和GitHub相比,碼雲也提供免費的Git倉庫,並且,免費版本還包含私有庫。此外,還集成了代碼質量檢測、項目演示等功能。對於團隊協作開發,碼雲還提供了項目管理、代碼托管、文檔管理的服務,5人以下小團隊免費。

  生成秘鑰:ssh-keygen

  找到生成秘鑰的文件,復制里面的內容。

使用碼雲和使用GitHub類似,我們在碼雲上注冊賬號並登錄后,需要先上傳自己的SSH公鑰。選擇右上角用戶頭像 -> 菜單“修改資料”,然后選擇“SSH公鑰”,填寫一個便於識別的標題,然后把用戶主目錄下的.ssh/id_rsa.pub文件的內容粘貼進去:

gitee-add-ssh-key

點擊“確定”即可完成並看到剛才添加的Key:

gitee-key

如果我們已經有了一個本地的git倉庫(例如,一個名為learngit的本地庫),如何把它關聯到碼雲的遠程庫上呢?

首先,我們在碼雲上創建一個新的項目,選擇右上角用戶頭像 -> 菜單“控制面板”,然后點擊“創建項目”:

gitee-new-repo

項目名稱最好與本地庫保持一致:

遠程庫的地址:

 

 

然后,我們在本地庫上使用命令git remote add把它和碼雲的遠程庫關聯:

git remote add origin git@gitee.com:liaoxuefeng/learngit.git 

之后,就可以正常地用git pushgit pull推送了!

如果在使用命令git remote add時報錯:

git remote add origin git@gitee.com:liaoxuefeng/learngit.git fatal: remote origin already exists.

測試是否連接成功: ssh -T git@git.oschina.net

出現類似於上面的提示表示連接成功。

 

這說明本地庫已經關聯了一個名叫origin的遠程庫,此時,可以先用git remote -v查看遠程庫信息:

git remote -v
origin    git@github.com:michaelliao/learngit.git (fetch) origin git@github.com:michaelliao/learngit.git (push) 

可以看到,本地庫已經關聯了origin的遠程庫,並且,該遠程庫指向GitHub。

我們可以刪除已有的GitHub遠程庫:

git remote rm origin

再關聯碼雲的遠程庫(注意路徑中需要填寫正確的用戶名):

git remote add origin git@gitee.com:liaoxuefeng/learngit.git 

此時,我們再查看遠程庫信息:

git remote -v
origin    git@gitee.com:liaoxuefeng/learngit.git (fetch) origin git@gitee.com:liaoxuefeng/learngit.git (push) 

現在可以看到,origin已經被關聯到碼雲的遠程庫了。通過git push命令就可以把本地庫推送到Gitee上。

可能push會出現以上的問題。

通過以下命令可以解決,具體參考:https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html

git pull --rebase origin master

 

有的小伙伴又要問了,一個本地庫能不能既關聯GitHub,又關聯碼雲呢?

答案是肯定的,因為git本身是分布式版本控制系統,可以同步到另外一個遠程庫,當然也可以同步到另外兩個遠程庫。

使用多個遠程庫時,我們要注意,git給遠程庫起的默認名稱是origin,如果有多個遠程庫,我們需要用不同的名稱來標識不同的遠程庫。

仍然以learngit本地庫為例,我們先刪除已關聯的名為origin的遠程庫:

git remote rm origin

然后,先關聯GitHub的遠程庫:

git remote add github git@github.com:michaelliao/learngit.git 

注意,遠程庫的名稱叫github,不叫origin了。

接着,再關聯碼雲的遠程庫:

git remote add gitee git@gitee.com:liaoxuefeng/learngit.git 

同樣注意,遠程庫的名稱叫gitee,不叫origin

現在,我們用git remote -v查看遠程庫信息,可以看到兩個遠程庫:

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

如果要推送到碼雲,使用命令:

git push gitee master

這樣一來,我們的本地庫就可以同時與多個遠程庫互相同步:

multi-remote

碼雲也同樣提供了Pull request功能,可以讓其他小伙伴參與到開源項目中來。你可以通過Fork我的倉庫:https://gitee.com/liaoxuefeng/learngit,創建一個your-gitee-id.txt的文本文件, 寫點自己學習Git的心得,然后推送一個pull request給我,這個倉庫會在碼雲和GitHub做雙向同步。

問題:

 


免責聲明!

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



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