1. 程式人生 > >如何將Git本地專案釋出到GitHub

如何將Git本地專案釋出到GitHub

一、準備工作

  1. 本地安裝了Git,建立了本地倉庫,並且專案已經提交(commit)到本地倉庫。
  2. 註冊了GitHub賬號,並且在GitHub上建立了遠端倉庫,用於關聯本地倉庫。

二、SSH與HTTPS的不同

  • 使用HTTPS協議,可以隨意克隆github上的專案,而不管是誰(適用於公開專案);使用SSH金鑰則要求你必須是要克隆的專案的擁有者或者管理員,且需要先新增SSH KEY,否則無法克隆(適用於團隊內部)。
  • 使用HTTPS在push(上傳)的時候是需要驗證使用者名稱和密碼的;而是用SSH在push(上傳)的時候,是不需要輸入使用者名稱的。如果配置SSH KEY的時候設定了密碼,則需要輸入密碼的,否則是不需要輸入密碼的。

三、在github上新增SSH KEY

1、檢查你的電腦是否已經有SSH KEY。

檢視Linux下~/.ssh,或Windows下C盤【C:\Users\使用者名稱.ssh】,是否已經存在 id_rsa.pub 或 id_dsa.pub 檔案。如果已經存在,可以跳過步驟2,直接進入步驟3.

2、建立一個SSH KEY

在Git Bash中執行命令:

ssh-keygen -t rsa -C "[email protected]"

引數含義:

注意ssh後沒有空格

-t 制定金鑰型別,預設是rsa,可以省略。

-C 設定註釋文字,比如郵箱

-f 制定金鑰檔案儲存檔名

以上程式碼省略了-f引數,因此,執行上面的命令後悔讓你輸入一個檔名,用於儲存剛才生成的SSH KEY程式碼。如:

Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

這裡也可以不輸入,則會在預設地址(推薦)下生成 id_rsa 和 id_rsa.pub 兩個祕鑰檔案。

 接著又會提示輸入兩次密碼(該密碼是上傳push檔案的時候要輸入的密碼,而不是github賬號管理者的密碼),同樣也可以不輸入密碼,直接按回車。那麼push的時候就不需要輸入密碼,直接提到到github上了。如:

Enter passphrase (empty for no passphrase): 
# Enter same passphrase again:

完成後,視窗上會有如下程式碼提示:

Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]

 如果你看到類似程式碼段,就說明SSH KEY已經成功建立了,接下來要做的就是把他新增到github的SSH KEY上。

3、新增你的SSH key到github上面去

a、拷貝id_rsa.pub 檔案的內容

b、登陸你的github賬號。從右上角的設定進入,然後點選選單的SSH KEY進入頁面新增SSH KEY。

c、點選Add SSH key按鈕新增一個SSH key。把步驟a中複製的程式碼貼上到key所對應的輸入框中,記得SSH key程式碼的前後不要留有空格或者回車。當然當然,上面的 Title 所對應的輸入框你也可以輸入一個該 SSH key 顯示在 github 上的一個別名。預設的會使用你的郵件名稱。

4、測試一下SSH KEY

在Git Bash中輸入以下程式碼:

$ ssh -T [email protected]

系統會有一段警告程式碼:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?

這是正常的,輸入Yes回車即可。如果你建立SSH key的時候設定了密碼,接下來就會提示你輸入密碼,如:

Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':

當然如果密碼輸錯了,會再要求你輸入,直到對了為止。注意:輸入密碼時如果輸錯一個字就會不正確,使用刪除鍵是無法更正的。密碼輸入正確後會看到下面的話:

Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.

gi如果使用者名稱是正確的,你已經成功設定SSH金鑰。如果看到 “access denied”,則表示拒絕訪問,那麼你就需要使用https去訪問,而不是SSH。

四、HTTPS上傳下載演示

2、將本地專案上傳到本地Git. (git add . 可以把目錄下所有檔案都新增)注意這裡是本地倉庫中的專案,而不是本地資料夾中的專案。專案要經過git init。

3、在本地專案目錄下執行git remote add命令,將本地倉庫與遠端倉庫關聯。

git remote add origin https://github.com/your_account/ssm.git

 4、把本地庫的所有內容推送到遠端庫上:

$ git push -u origin master

Github會自動彈出輸入使用者名稱和密碼的介面 

如果資訊驗證無誤,Git會自動開始上傳過程:

到Github中檢視,發現專案已經全部上傳上去了。以後專案內容有了更改,只要到專案目錄下push一下就可以了。

五、SSH上傳下載演示

2、將本地專案上傳到本地Git. 

3、確保SSH KEY已經按上述步驟安裝完成的情況下,在本地專案目錄下執行git remote add命令,將本地倉庫與遠端倉庫關聯。

git remote add origin [email protected]:your_account/Algs4.git

 4、把本地庫的所有內容推送到遠端庫上:

$ git push -u origin master

如果SSH KEY中設定了密碼,則這裡會要求輸入密碼。如果沒有則直接開始上傳:

同樣到Github中檢視,發現專案已經全部上傳上去了。以後專案內容有了更改,只要到專案目錄下push一下就可以了。