Linux下使用GitHub記

    前幾天搗置git,想將本身有用的代碼上傳到github去。本地git命令使用倒沒有什麼大的問題,就是這個push與poll操做老是搞不定。通過幾天的查資料問人,今天總算搞通了。於此記錄一下經驗與心得。 linux

(1)獲得github網站上去注個冊。 git

(2)按照"Set Up Git"的說明安裝git本地客戶端。 github

(3)建立第一個版本Create A Repo
    我遇到的困難是在Step3 Push your commit,執行: shell

$ git push origin master
Permission denied (publickey).

    都會報"Permission denied (publickey)."我使過不少方法都沒有解決直到找到 Generating SSH keys 說明網頁。接下來我詳細地講一下問題緣由:
    是這樣的,咱們本地git客戶端與服務器通訊時經過SSH進行加密處理的。若是咱們沒有這個,那麼咱們就沒有辦法進行通訊了。 SSH的工做緣由是:生成一對密鑰(私鑰、公鑰),私鑰放在本地,公鑰放到遠程的服務器上。當咱們與遠程服務器通訊時,中間的數據經過私鑰加密後傳到服務器,服務器再經過公鑰進行解密。從而防止數據在網絡傳輸過程當中被竊聽。
    按 Generating SSH keys 所示生成SSH密鑰。 期間SSH會要求咱們輸入passphrase,是一個用戶本身隨便定義的短語,好比:"Today is sunny",或其它都行。這個短語別忘了,之後還要用到。 完成以後,SSH 在~/.ssh路徑下生成了id_rsa與id_rsa.pub兩個文件。前者爲私鑰文件,後者爲公鑰文件。咱們要將id_rsa.pub文件中的密文複製到github賬戶設置中去,告訴服務器要用這個公鑰與咱們本地SSH通訊。
    我在 Step4 Test Everything out 中遇到點問題。
服務器

$ ssh -T git@github.com
Agent admitted failure to sign using the key

    沒有獲得預期的結果。問題緣由是:我們來沒有告訴SSH本地使用的私鑰是哪一個。執行如下命令:
網絡

$ ssh-add ~/.ssh/id_rsa
Identity added: /home/hevake_lcj/.ssh/id_rsa (/home/hevake_lcj/.ssh/id_rsa)

    注:其中是要輸入建立時的passphrase,驗證經過了就成功了。
    但試一次: ssh

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

   此次OK了。而後再嘗試git pull命令從服務器上下載代碼:
ide

$ git pull origin master

    記住:每次push前都要先pull,調試運行一下看有沒有問題,確認沒問題了再提交。
    接下來就能夠正常使用了~~

從GitHub導代碼方法:網站

(1)建一個目錄,進入這個目錄而後執行git init.加密

$ mkdir StateMachine
$ cd StateMachine
$ git init

(2)設置遠程路徑

  從GitHub複製工程地址,以下爲:git@github.com:hevakelcj/StateMachine.git

$ git remote add origin git@github.com:hevakelcj/StateMachine.git

(3)導入代碼

$ git pull origin master

  若是警告說Key的問題,則ssh-add,使用私密。

相關文章
相關標籤/搜索