如何將Git本地專案釋出到GitHub
一、準備工作
- 本地安裝了Git,建立了本地倉庫,並且專案已經提交(commit)到本地倉庫。
- 註冊了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一下就可以了。