iOS 代碼上傳 GitHub - 命令行方式

奇異博士

之前寫了篇介紹JSPatch 使用的文章,demo 已上傳 GitHub 。這篇文章給大家介紹一下如何使用命令行將代碼上傳 GitHub (下篇文章會介紹使用 GitHub 客戶端)。

創建遠程代碼倉庫

首先你要有個 GitHub 賬號,沒有的話先到官網注冊一個,賬號有了后創建一個遠程倉庫 repository

新建一個倉庫

創建倉庫需要填寫的信息
倉庫信息

填寫完之后點 Create repository 便成功創建倉庫

SSH Key

由于本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過 SSH 加密的,所以需要一點設置:
1、終端 cd ~/.ssh 命令查看有沒有 .ssh 目錄,如果有,再看看這個目錄下有沒有 id_rsa 和 id_rsa.pub 這兩個文件(終端輸入 pwd 命令可以查看 .ssh 目錄)。如果沒有 .ssh 終端你會看到 No such file or directory (看下一步創建)

查看有沒有 .ssh 目錄

.ssh 目錄

2、創建 SSH Key

$ ssh-keygen -t rsa -C youremail@xxx.com // 你注冊 GitHub 賬號時的郵箱

然后一路回車(讓輸入密碼的地方不用輸入)


crete

如果一切順利的話,可以在 .ssh 目錄找到 id_rsa 和 id_rsa.pub 兩個文件,這兩個就是 SSH Key 的秘鑰對,id_rsa 是私鑰,不能泄露出去,id_rsa.pub 是公鑰,可以放心地告訴任何人。現在把 id_rsa.pub 文件里的內容拷貝下來,可通過下面的命令 copy

$ pbcopy < ~/.ssh/id_rsa.pub

做個小補充

為什么 GitHub 需要 SSH Key 呢?因為 GitHub 需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而 Git 支持 SSH 協議,所以,GitHub 只要知道了你的公鑰,就可以確認只有你自己才能推送。
當然,GitHub 允許你添加多個 Key。假定你有若干電腦,你一會兒在公司提交,一會兒在家里提交,只要把每臺電腦的 Key 都添加到 GitHub,就可以在每臺電腦上往 GitHub 推送了。
最后友情提示,在 GitHub 上免費托管的 Git 倉庫,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放進去。
如果你不想讓別人看到 Git 庫,有兩個辦法,一個是交點保護費,讓 GitHub 把公開的倉庫變成私有的,這樣別人就看不見了(不可讀更不可寫)。另一個辦法是自己動手,搭一個 Git 服務器,因為是你自己的 Git 服務器,所以別人也是看不見的。這個方法我們后面會講到的,相當簡單,公司內部開發必備。

ps:引用自廖雪峰的 Git 教程-遠程倉庫, 本文很多地方都有參考。搬個磚~

3、添加 SSH Key
回到你的 GitHub ,按下圖操作


Settings

SSH and GPG keys

Add SSH Key

SSH key就添加完成了,如圖(尚未確認連接,所以是灰色的)



回到終端,輸入
$ ssh -T git@github.com

回車,確認連接,刷新網頁(顏色變綠)



注:當你第一次使用 Git 的 clone 或者 push 命令連接 GitHub 時,會得到一個警告:

The authenticity of host 'github.com (*********)' can't be established.
RSA key fingerprint is **************************
Are you sure you want to continue connecting (yes/no)?

這是因為 Git 使用 SSH 連接,而 SSH 連接在第一次驗證 GitHub 服務器的 Key 時,需要你確認 GitHub 的 Key 的指紋信息是否真的來自 GitHub 的服務器,輸入 yes 回車即可,如果你創建 SSH key 的時候設置了密碼,會提示你輸入密碼,輸入即可(因為我們創建時沒有設置所以不需要輸入)

Enter passphrase for key '/c/Users/xxx/.ssh/id_rsa':  // 密碼

當看到下面的話恭喜你驗證成功!

Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
代碼上傳

現在我們就可以把代碼 push 到 GitHub 了,在這之前我已經創建了一個項目" GitHubTest" (跟 GitHub 上創建的倉庫名稱要一致)放在了 Desktop 。
1、建立本地倉庫:打開終端,cd 到項目目錄,回車,git init 命令將這個目錄變成可以使用 Git 管理的倉庫

$ git init

回車之后會發現目錄下多了一個 .git 的目錄,這個目錄是 Git 來跟蹤管理版本庫的,沒事不要手動修改這個目錄里面的文件,否則可能會破壞倉庫。.git 目錄默認是隱藏的,用 ls -ah 命令就可以看見。


3、將項目中所有文件添加到本地倉庫中(如果只想添加某個特定的文件,把 . 換成特定的文件名即可, git add 的更多用法可自行百度)

$ git add . 

4、將添加的文件 commit 到倉庫中(-m 后面輸入的是本次提交的說明,方便以后找到改動記錄)

$ git commit -m "firstCommit"

5、回到 GitHub 復制下面紅框中的地址


復制url

終端執行如下命令,將 Git 本地倉庫和 Github 遠程倉庫關聯起來

$ git remote add origin git@github.com:MixedTwo/GitHubTest.git  // 記得換成自己的地址

3 ~ 5步的終端操作

3 ~ 5

注:你也許還注意到,GitHub 給出的地址不止一個,還可以用https://github.com/MixedTwo/GitHubTest.git 這樣的地址。實際上,Git 支持多種協議,默認使用 SSH,但也可以使用 HTTPS 等其他協議。

HTTPS 和 SSH 的區別:

1、前者可以隨意克隆 github上的項目,而不管是誰的;而后者則是你必須是你要克隆的項目的擁有者或管理員,且需要先添加 SSH key ,否則無法克隆。
2、HTTPS url 在push的時候是需要驗證用戶名和密碼的;而 SSH 在 push 的時候,是不需要輸入用戶名的,如果配置 SSH key 的時候設置了密碼,則需要輸入密碼的,否則直接是不需要輸入密碼的。

6、上傳之前,要先 pull 一下,執行如下命令

$ git pull origin master

會出現下面的界面,可以寫 pull 的信息



具體操作按如下步驟:

Git 在 pull 或者合并分支的時候有時會出現這個界面。如不需要填寫,按3、4步操作:
1.按 i 進入 insert 模式
2.修改最上面那行黃色合并信息(可以不修改)
3.按"Esc"
4.輸入 :wq ,回車即可(注意:冒號在英文鍵盤模式下輸入)

7、最后一步,push 代碼到 GitHub 遠程倉庫

git push -u origin master

回到 GitHub 查看,ok,perfect!


上傳成功
補充

如果要刪除 GitHub 上的項目,先選擇要刪除的項目-->Settings


然后找到這個地方,點擊 Delete this repository

輸入你的項目名稱
刪除項目

結語

文中難免會出現錯誤和疏漏的地方,歡迎指正、交流。

參考文章:廖雪峰 Git教程

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容