「迭代GitHub」提交程式碼
1、SSH
你擁有了一個 GitHub/">GitHub 賬號之後,就可以自由的 clone 或者下載其他專案,也可以建立自己的專案,但是你沒法提交程式碼。仔細想想也知道,肯定不可能隨意就能提交程式碼的,如果隨意可以提交程式碼,那麼 GitHub 上的專案豈不亂了套了,所以提交程式碼之前一定是需要某種授權的,而 GitHub 上一般都是基於 SSH 授權的。
那麼什麼是 SSH 呢?
簡單點說,SSH是一種網路協議,用於計算機之間的加密登入。目前是每一臺 Linux 電腦的標準配置。而大多數 Git 伺服器都會選擇使用 SSH 公鑰來進行授權,所以想要在 GitHub 提交程式碼的第一步就是要先新增 SSH key 配置。
2、生成SSH key
Linux 與 Mac 都是預設安裝了 SSH ,而 Windows 系統安裝了 Git Bash 應該也是帶了 SSH 的。大家可以在終端(win下在 Git Bash 裡)輸入 ssh 如果出現以下提示證明你本機已經安裝 SSH, 否則請搜尋自行安裝下。

緊接著輸入 ssh-keygen -t rsa ,什麼意思呢?就是指定 rsa 演算法生成金鑰,接著連續三個回車鍵(不需要輸入密碼),然後就會生成兩個檔案 id_rsa 和 id_rsa.pub ,而 id_rsa 是金鑰,id_rsa.pub 就是公鑰。這兩檔案預設分別在如下目錄裡生成:
Linux/Mac 系統 在 ~/.ssh 下,win系統在 /c/Documents and Settings/username/.ssh 下,都是隱藏檔案,相信你們有辦法檢視的。
接下來要做的是把 id_rsa.pub 的內容新增到 GitHub 上,這樣你本地的 id_rsa 金鑰跟 GitHub 上的 id_rsa.pub 公鑰進行配對,授權成功才可以提交程式碼。
3、GitHub 上新增 SSH key
第一步先在 GitHub 上的設定頁面,點選最左側 SSH and GPG keys :

然後點選右上角的 New SSH key 按鈕:

需要做的只是在 Key 那欄把 id_rsa.pub 公鑰檔案裡的內容複製貼上進去就可以了(上述示例為了安全貼上的公鑰是無效的), Title 那欄不需要填寫,點選 Add SSH key 按鈕就ok了。
4、Push & Pull
在提交程式碼之前我們先要了解兩個命令。
Push :直譯過來就是「推」的意思,什麼意思呢?如果你原生代碼有更新了,那麼就需要把原生代碼推到遠端倉庫,這樣本地倉庫跟遠端倉庫就可以保持同步了。
程式碼示例: git push origin master
意思就是把原生代碼推到遠端 master 分支。
Pull :直譯過來就是「拉」的意思,如果別人提交程式碼到遠端倉庫,這個時候你需要把遠端倉庫的最新程式碼拉下來,然後保證兩端程式碼的同步。
程式碼示例: git pull origin master
意思就是把遠端最新的程式碼更新到本地。一般我們在 push 之前都會先 pull ,這樣不容易衝突。
5、提交程式碼
新增 SSH key 成功之後,我們就有許可權向 GitHub 上我們自己的專案提交程式碼了,而提交程式碼有兩種方法:
Clone自己的專案
我們以我在 GitHub 上建立的 test 專案為例,執行如下命令:
git clone [email protected]:stormzhang/test.git
這樣就把 test 專案 clone 到了本地,你可以把 clone 命令理解為高階點的複製,這個時候該專案本身就已經是一個git 倉庫了,不需要執行 git init 進行初始化,而且甚至都已經關聯好了遠端倉庫,我們只需要在這個 test 目錄下任意修改或者新增檔案,然後進行 commit ,之後就可以執行:
git push origin master
進行程式碼提交,這種是最簡單方便的一種方式。
至於怎麼獲取專案的倉庫地址呢?如下圖:

關聯本地已有專案
如果我們本地已經有一個完整的 git 倉庫,並且已經進行了很多次 commit ,這個時候第一種方法就不適合了。
假設我們本地有個 test2 的專案,我們需要的是在 GitHub 上建一個 test 的專案,然後把本地 test2 上的所有程式碼 commit 記錄提交到 GitHub 上的 test 專案。
第一步就是在 GitHub 上建一個 test 專案,這個想必大家都會了,就不用多講了。
第二步把本地 test2 專案與 GitHub 上的 test 專案進行關聯,切換到 test2 目錄,執行如下命令:
git remote add [email protected]:stormzhang/test.git
檢視我們當前專案有哪些遠端倉庫可以執行如下命令:
git remote -v
接下來,我們本地的倉庫就可以向遠端倉庫進行程式碼提交了:
git push origin master
就是預設向 GitHub 上的 test 目錄提交了程式碼,而這個程式碼是在 master 分支。
—END—

科君乾貨
技能 |學習 |資源 |電影