分享到plurk 分享到twitter 分享到facebook

版本 84670a4660185ad0a607dadb06b0c136c9173a8c

GitHub 設定指引

(以下內容由 許元杰<https://github.com/Jayjack0116>_ 貢獻)

建立 GitHub 帳號

  • Github 是個 Git 的托管網站,可讓開發者將自己的專案儲存到網路上,與全世界分享,我們可方便的使用 Git 在本機進行專案管理。
  • GitHub 同時提供付費帳號和為了開放原始碼程式提供的免費帳號。根據 2009 年的 Git 使用者調查,GitHub 是最熱門的 Git 分享網站。它提供了如 feeds、followers 和顯示開發者們如何在他們版本庫上的版本工作的圖表。 GitHub 也提供類似剪貼簿的功能,issue tracker 和網頁使用 Wiki,通過一個 git repository 即可對這些頁面進行編輯。

.. image:: /use-git-01.png

建立新 repository

在和本機的 repository 連動之前,先給自己的專案取個名字吧,這會是你專案之後的名字,也會是其他人搜尋你專案的時候的關鍵字,好的專案一定有一個好的名字。

.. image:: /use-git-02.png

上圖是筆者新增一個叫做 “Embedded-System-Class” 的 repository,以及 Fork 課程所用的 embedded2015/arm-lecture<https://github.com/embedded2015/arm-lecture/>_ 這個 repository。

綁訂機器的 SSH key

因為要讓 Github 知道是我們這台電腦上傳的專案,所以我們要和 Github 之間建立一種默契,這個默契就是使用 ssh 協定時的 public key<http://en.wikipedia.org/wiki/Public-key_cryptography>_,我們給 Github 我們本機的 ssh public key ,告訴 Github 拿著這個 key 的電腦才是這個帳號的使用者, 如此一來就只能由這台電腦進行管理,才不會造成其他人來我們的帳號亂上傳東西的窘境。

首先,點選右上角的工具按鈕,進入帳號設定頁面,在頁面的左下角點選 “SSH keys”

.. image:: /use-git-03.png

SSH key 產生的方法

($ 開頭的表示法,就是說明在 Linux 終端機輸入指令)

 

  1. 輸入指令

.. code-block:: prettyprint

$ ssh-keygen -t rsa -C "your_email@example.com"

後面那是自己申請 Github 所使用的信箱。之後 ssh 程式會要求輸入 passphrase:

.. image:: /use-git-04.png

 

  1. 直接按下 Enter 鍵即可。

.. image:: /use-git-05.png

 

  1. 輸入一個passphrase,如不想輸入直接按下 Enter 鍵即可。

.. image:: /use-git-06.jpg

 

  1. 此時顯示的是你SSH Key的fingerprint

.. image:: /use-git-07.jpg

 

  1. 將剛剛產生的key加入ssh-agent中

如果你已安裝了 Windows版的Github<https://windows.github.com/>_ ,你可以在不使用SSH Key的狀況下執行clone等操作。windows版本同時支援許多Git Bash tool,可運行眾多的Git指令。

5-1. 如果你已安裝Git Bash,輸入以下指令以啟動ssh-agent

.. image:: /use-git-08.jpg

  如果你使用的是 `msysgit<https://msysgit.github.io/>`_ 等軟體,則輸入以下指令

.. image:: /use-git-09.jpg

 

5-2. 將剛剛產生的key加入ssh-agent中

.. image:: /use-git-10.jpg

 

  1. 到Github網站加入你的SSH KEY

將SSH Key複製到你的剪貼簿,如果你的Key檔案名稱為id_dsa.pub、id_ecdsa.pub orid_ed25519.pub等,請自行將以下程式碼中「id_rsa.pub」修改成你的檔案名稱。

.. image:: /use-git-11.jpg

 

6-1. 點選工具 icon

.. image:: /use-git-12.jpg

 

6-2. 點選SSH Keys

.. image:: /use-git-13.jpg

 

6-3. 選擇 Add SSH key

.. image:: /use-git-14.jpg

 

6-4. 貼上key!!!!

.. image:: /use-git-15.jpg

 

6-5. 按下 Add key就完成啦!

 

  1. 驗證你有沒有綁訂了

 

7-1. 輸入 $ ssh -T git@github.com

.. image:: /use-git-16.jpg

 

7-2. 你會看到這個 warning,然後輸入"yes"

.. image:: /use-git-17.jpg

 

7-3. 你將會看到

.. image:: /use-git-18.jpg

  這樣就成功囉!

同步

將本機repository 和 Github repository 同步

打開空的 repository,Github 會指示你如何將本機 repository remote 到 Git 的 repository 進入到本機的 repository 資料夾之中,並輸入以下指令,即可連線並把目前的 repository 同步到 Github 上面了。

.. code-block:: prettyprint

$ git remote add origin git@github.com:your_account/your_repository.git

.. code-block:: prettyprint

$ git push -u origin master

之後只需要輸入

.. code-block:: prettyprint

$ git push

即可

Fork其他使用者的專案

Fork 是一個較為特殊的稱呼方式,意思是將其他使用者的 repository 複製到本機,我也可以直接透過他的 repository 來自己修改這個專案,讓這個專案更好。 如果你有寫入權限的話(被加入成Collaborators),就可以用 SSH 協定 Clone 下來:

.. code-block:: prettyprint

$ git clone git@github.com:Username/repository.git

如果沒有寫入權限 (Collaborators)的話,因為這個專案是公開的,所以你還是可以用 Git 協定 Clone 下來:

.. code-block:: prettyprint

$ git clone git://github.com/Username/repository.git

如果有防火牆問題,改用 HTTPS 協定:

.. code-block:: prettyprint

$ git clone https://github.com/Username/repository.git