SSH免密上傳本地項目到GitHub for mac

楔子

試想以下兩種場景:

  • 場景一
    《鹿鼎記》中青木堂香主韋小寶每次見手下都要來兩句:
    ** 地震高崗,一派西山千古秀,**
    ** 門朝大海,江河河水萬年流。**
    這還是短的,有的暗號更長,說錯一個字或順序不對都要從頭再來,韋小寶想明明已經很熟了還要每次都來這套,你說煩不煩,肯定煩,但為了反清復明的大業,韋香主你就忍了吧!!!
  • 場景二
    時光穿梭到了現代,《偽裝者》的軍統特工或地下黨們為了在公眾場合掩人耳目,便以胸前插支或用兩半撕開的紙幣接頭交換情報,既能驗證雙方身份又快速簡潔不易察覺!!!

很顯然,以上兩種場景中后者在現實使用中更優,體現諜者隨時代發展而進步。
身份驗證古往今來都不可或缺,場景一就像每次我們做事前都要原班輸入賬號密碼一樣繁瑣又無奈;場景二就是這種無奈之下的改進措施,由賬號-密碼轉化為SSH免密登陸。

SSH密鑰對采用的是RSA非對稱加密算法,而由賬戶-密碼方式的身份驗證到SSH免密登錄絕不僅僅是技術上應用,更是設計思想的巧妙運用。我們在做技術的過程中遇到的問題往往是有多種解決方案,就是“怎么著都行”,而在這多種方案的比較、分析中往往能迸發出奇妙創新的思維火花,也就是換個思路問題竟如此簡單的那種極爽的感覺,這就是程序員的快樂!!!

筆者在此就以上傳本地項目到GitHub為例子,假設讀者朋友們沒有任何賬號+沒有裝載任何客戶端,期望能讓大家吃著火鍋唱著歌就能把事兒給辦了。

一、安裝Git

  1. Git命令行版本 從terminal即終端輸入命令進行操作。
  2. Git可視化管理工具 可視化頁面點點鼠標就能完成各項操作,建議使用SourceTree,程序員喜聞樂見的git可視化工具。

根據筆者經驗,命令行操作沒有SourceTree等可視化工具操作方便、簡潔、直觀,但是一步一步的命令行更便于我們理解git版本控制的原理,還可以做一些更細致的操作。本人一般都是用命令行提交、拉取、合并代碼,但是用SourceTree查看提交記錄和沖突部分的代碼,非常直觀。

二、GitHub部分

1. 注冊GitHub賬號

登陸GitHub官網,按引導注冊即可

注冊GitHub賬號

2. 創建 respository(代碼倉庫)

建好的代碼倉庫自帶.git文件進行倉庫管理,即我們常說的版本控制,respository存放并管理著庫內所有文件、資源、代碼的存取、更新、記錄等,和現實中物流倉庫功能很相似。

無圖無真相,觀眾朋友們按圖索驥就行了。

創建倉庫
配置倉庫信息
倉庫創建完成

3. 建立本地與GitHub的交互通道

說白了,GitHub上我們建立的是開源項目,也就是人人看得見,摸得著(都能下載、克隆),但只有本賬號持有者才有更改的權限(人人都能直接改就亂套了)。現在問題來了:GitHub怎么識別賬號持有者呢?

3.1. GitHub上直接操作

很顯然這種方式是通過賬號-密碼的形式直接從官網進行操作的,看似簡單直接,但看看就行了,因為不支持文件夾,這對單獨或簡單創建和上傳少許文件比較適用,而我們的項目數不勝數的文件文件夾,顯然不行。

github直接操作

3.2. GIt可視化工具管理倉庫文件

利用Git可視化工具如SourceTree進行代碼操作,每次push操作時都會驗證用戶合法性,即需要輸入相應GitHub賬號-密碼。

3.3. SSH免密登陸

簡單點說就是,用自己的電腦生成了一對密鑰對,私鑰文件留在本機特定地方,公鑰放在GitHub特定地方,每次進行網路交互時,一旦雙方密鑰能對上,就說明用戶身份有效。有興趣的同學可看看下面文章:
ssh 免密碼登錄

賬號-密碼式的用戶驗證方式就像是每次見面都先來一通“天王蓋地虎”的說道,不煩才怪。而SSH免密驗證就像是雙方拿著兩半撕開的紙幣,合上即代表自己人,一切盡在不言中,是不是酷斃了!!!

3.3.1. .ssh文件

cd ~/.ssh/,若無此文件夾需要創建一個 mkdir .ssh

3.3.2. 創建SSH密鑰對

~/.ssh/目錄下,ssh-keygen -t rsa -C "your_email@example.com" 后面“ ”里面改成你的郵箱就行,回車會提示你輸入密鑰文件名,然后輸入密碼什么的,既可以根據提示設置,也可以無視一直回車下去。

3.3.3. 將SSH密鑰公鑰放進GitHub

open . 打開.ssh,找到公鑰文件(.pub)打開復制其文本內容
登陸GitHub,進入Settings

1. 進入設置
2. 添加SSH公鑰
3. 配置SSH公鑰信息
4. 公鑰添加成功
3.4. 測試SSH密鑰設置是否成功

ssh -T git@github.com

bogon:test2 guoxiangyang$ ssh -T git@github.com
Permission denied (publickey).

修改了密鑰文件名之后就行了:

bogon:~ guoxiangyang$ ssh -T git@github.com
Hi guoxiangyang110! You've successfully authenticated, but GitHub does not provide shell access.

經驗證SSH密鑰文件名不是id_rsa 和 id_rsa.pub好像是不行,知道原因的同學還請指教一二。

三、上傳本地項目到GitHub

1. 克隆代碼倉庫

cd 到存儲代碼倉庫的目錄

// 根據自身情況跟換后面的代碼倉庫目錄
git clone git@github.com:guoxiangyang110/HelloWorld.git

之后同樣有2條路可以走

  • git可視化工具
    將clone下來的代碼倉拖拽到SourceTree工程列表中,然后進行各種操作
  • git命令行
常用命令 作用
git init git 倉庫初始化
git add 添加文件至git緩存
git commit 提交文件到本地代碼倉庫
git push 提交更新到遠程(GitHub
bogon:HelloWorld guoxiangyang$ git init
Reinitialized existing Git repository in /Users/guoxiangyang/Desktop/Test/HelloWorld/.git/
bogon:HelloWorld guoxiangyang$ git add .
bogon:HelloWorld guoxiangyang$ git commit -m "first commit"
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
bogon:HelloWorld guoxiangyang$ git push origin master:master
Everything up-to-date

2. 上傳本地項目

只需將本地項目添加到clone下來的代碼倉庫里,然后用SourceTree或命令行addcommitpushGitHub即可。

四、刪除GitHub上的代碼倉庫

操作簡單但一開始不太好找,以圖說明:

進入項目設置

翻滾到左下方,點擊確定刪除


刪除項目

輸入要刪除的倉庫名稱,確定刪除


刪除特定項目

他山之石

本文特別感謝包括并不限于以下優秀文章:
http://www.open-open.com/lib/view/open1454507333214.html
http://blog.csdn.net/leikezhu1981/article/details/47664215
http://www.lxweimin.com/p/9c918d96f941

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容