天天看點

中國版GitHub的注冊和項目托管,碼雲gitee.com建立第一個git托管倉庫

為什麼要使用碼雲, 點選這裡

解決了很多GitHub的痛處。對于我來說就是GitHub全英文,我隻認識abc不是ABC,好難用。而且網絡比國内站點慢很多。

注冊碼雲賬戶就不說了。

第一步:首先本地初始化一個項目,執行git config 告訴git你是誰,這些資訊會出現在你建立的送出中

git config --global user.name "你的名字或者昵稱"
git config --global user.email "你的郵箱"           

git bash生成公鑰

ssh-keygen -t rsa -C "你的郵箱"           

一路點選回車即可,檔案在C:\Users\Administrator\.ssh 下。可以将生成的公鑰粘貼到碼雲-->個人配置-->公鑰,這樣使用ssh登入就不用使用者名和密碼了。

第二步:建立檔案夾用作本地倉庫

比如在D盤建立 gitspace作為本地倉庫,使用bash進入該目錄

cd D:/gitspace
                git init # 初始化git
git remote add origin <你的遠端倉庫位址> #綁定遠端倉庫
#倉庫位址格式:https://gitee.com/yourdir/yourproject.git或者[email protected]:yourdir/yourproject.git 
#這裡的yourdir和yourproject是在碼雲裡頭建立項目時設定的
           

第三步:更新到遠端倉庫

git add . #指定更新内容.表示所有的,加目錄表示更新某個目錄,加檔案表示更新某個檔案 git commit -m "注釋" #git強烈要求送出添加注釋 git push -u origin master #執行更新操作

更新前最好是執行git pull --rebase origin master 操作,讓gitee與本地代碼合并再執行push操作,避免沖突

檢視遠端倉庫:git remote v

删除遠端倉庫:git remote rm origin <你的遠端倉庫位址>

踩坑一:

push操作如果出現:fatal: Authentication failed for <你的遠端倉庫位址>,而且有不彈出對話框輸入使用者名和密碼,那麼可以使用:

git config --system --unset credential.helper

然後再push。

出現該錯誤的原因就是使用者名和密碼輸入不正确。此處的使用者名和密碼比較坑,因為隻有注冊碼雲的時候填了使用者名和密碼,倉庫并沒有單獨的密碼,是以這裡的使用者名和密碼就是git倉庫的使用者名和密碼。而且密碼使用特殊字元還不能成功,盡量使用數字和大小寫字母組合密碼,可以在碼雲個人設定那裡修改密碼。

填坑一:

使用者名是你注冊時候使用的郵箱,而不是别名。比如我在碼雲注冊的使用者名是marvin,中文名是馬文,郵箱是[email protected]。這裡git使用的是你的郵箱[email protected]而不是marvin或者馬文。容易造成誤解的地方是:

你安裝成功後使用指令 ssh -T [email protected]的時候會提醒你:Welcome to gitee.com, 馬文

而初始化項目的時候使用的git config --global user.name "marvin" 這裡的配置跟生成公鑰私鑰有關

但是這兩個都不是倉庫的登入使用者名。

踩坑二:

第一次建立a.git倉庫,使用Demo項目,後面就把他删了git remote rm origin

https://gitee.com/a/a.git

再重新再gitee背景建立一個叫a.git的倉庫,使用code項目,code項目指派到本地倉庫,進行push:git push -u origin master

提示錯誤:

! [rejected] master -> master (fetch first)

error: failed to push some refs to 'https://gitee.com/a/a.git'

連續的錯誤,頭好大。學習一個新東西哪有不撞牆的,撞了東牆裝西牆。學習新東西的正确打開方式,應該先看文檔了解工作原理再動手實踐。無奈自己是個急性子又沉不下心來看理論知識。直接百度就開始幹。這不是個好習慣。

填坑二:

之前說了push操作前先pull,以免發生沖突。

git pull origin master, 又有新問題出現:

From https://gitee.com/a/a

* branch master -> FETCH_HEAD

* [new branch] master -> origin/master

fatal: refusing to merge unrelated histories

錯誤的大概意思是拒絕合并一個不想管的曆史倉庫,也就是說曆史倉和新送出的本地倉庫的項目并不相關,拒絕合并。雖然是錯誤,頭大。但不得不說git管理代碼的嚴謹性棒棒哒。因為之前倉庫已經被删了(使用被删的倉庫作為新的倉庫,會有這個問題,應該是某些做記錄的檔案沒有被删除),兩個項目不同合并了也不會有什麼問題,告知git忽略這個問題

git pull origin master --allow-unrelated-histories

,執行後會進入vi狀态,進行注釋。再使用push操作,成功。兩個問題一起解決。

然後就可以clone項目了。