itsPG.org

PG @ NCTU SenseLab

[教學] 在windows上使用github 新手教學 / 初學者指南

這篇文章的定位是補齊github在windows上文件的缺乏,希望第一次用git / github的人,也可以依照這份文件來快速上手,另,由於git博大精深,不可能將所有的功能一一介紹,因此這份教學著重於設定好最基本的git環境,以及能夠達到最基本的git commit / git push功能,希望這樣的文章編排可以盡量降低初學者上手的門檻。

github 基礎設定

1. 註冊github

網址在這邊:https://github.com/

2. 安裝Windows版的 git

請使用支援UTF-8檔名的windows版 git

git下載位址

3. 為此台電腦建立識別金鑰

這步驟比較麻煩,尤其是對於沒摸過Unix / Linux系列的人來說更是如此…

3.1 建立金鑰對

從開始功能表裡面打開git bash

打入以下指令,產生一把識別電腦用的金鑰
ssh-keygen -t rsa -C “rixia@miko.tw”
打完指令之後程式會詢問金鑰存放位址,直接按Enter採用預設值即可
接下來詢問是否使用密碼,若在此步驟中填入密碼,則以後每次使用github上傳程式碼的時候都必須打上此組密碼
如果不想每次傳檔都打密碼的話,就留白直接Enter吧

再次確認密碼,沒密碼的話直接Enter,有密碼的話打完密碼按Enter

3.2 複製公開金鑰

用記事本打開 C:\Users\你的使用者名稱\.ssh\id_rsa.pub 這個檔案 把裡面的內容複製下來

3.3 填入金鑰

在設定畫面中的SSH keys裡面,把剛剛複製到的公開金鑰貼上去

4. 設定使用者名稱以及郵件位址

當你上傳程式碼的時候,會用這些資訊來辨識是誰上傳的

開啟命令列視窗(win+r>cmd,或是開始>執行>cmd),打入以下兩行指令
git config –global user.name “Your Name”
git config –global user.email rixia@miko.tw

如果電腦重灌或者是換到新電腦上的話,重複步驟2~4即可

github 建立新的Repository

Repository就是倉庫,我們待會要拿來存code的地方..

個人首頁這邊點下去就對了

基本資料輸入完之後,會出現一連串的指令教你怎樣建立本地端的repository並設定好遠端的repository
除了第四個指令’touch README’以外,都可以照作,以下稍微解釋一下每個步驟在幹麼

  1. mkdir Hello-github

  2. cd Hello-github

  3. git init 初始化本地的repository

  4. 在此目錄下建立一個README.txt檔案
    開記事本隨便存一個空白檔案就好

  5. git add README.txt 追蹤README.txt這個檔案

  6. git commit -m 'first commit'
    提交一份commit到本地的repository(first commit是註解,可替換成你要的文字)

  7. git remote add origin git@github.com:rixia/Hello-github.git
    加入遠端repository

  8. git push -u origin master
    設定遠端的對應關係

接下來呢?

你可以在這個目錄下隨意建立一些原始碼 利用git add filename追蹤它 利用git commit -am "MSG"提交一份commit到本地端 利用git push將本地端的修改同步到伺服器上

舉例來說,假設我寫了一個新的程式原始檔名叫做a.cpp
具體流程來說像是這個樣子

  1. git add a.cpp 代表我們開始追蹤a.cpp這個檔案

  2. 對a.cpp中做一些修改

  3. git commit -am "some message" 將修改的快照保存下來

  4. 重複步驟2 步驟3 直到你滿意為止

  5. git push 將修改結果上傳到github上

寫在最後

這篇所講到的功能不過是把程式碼修訂紀錄留下而已,git還有很多功能,用到熟練勢必需要投資大量的時間學習,但我們僅需最基本的幾個指令也能享受git給我們帶來的便利性。

在這邊列出幾個我比較常用的指令,想進一步學習的話可以考慮從這邊入門

這些是常用的branch相關的操作

  • git checkout
  • git branch
  • git merge

這些是常用的復原用操作

  • git reflog
  • git reset
  • git revert

Comments