2020年1月16日 星期四

Git 學習筆記 (四) : GitHub 基本用法

GitHub 是最有名的遠端 Git 儲存庫, 原本免費用戶必須是 public (公開) 的, 亦即所有人都能存取原始碼, 但在 2019 年初 GitHub 已經取消了免費用戶只能建立公開儲存庫的限制, 儲存空間是 500MB, 允許三人共同協作. "為自己學 Git" 作者高見龍對於 GitHub 有很棒的線上教學, 參考 :

GitHub 是什麼?


一. 註冊 GitHub :

https://github.com/

按右上角的 "Sign Up" 鈕, 輸入使用者名稱, 郵件信箱 (即帳號), 設定密碼 (至少為 8 個字元, 須含一個數字與小寫字母) :



按 "Sign up for GitHub", 進入帳號驗證畫面, 按播放鈕, 將所念的數字填入 "接受挑戰" 底下的輸入框, 按 "驗證" 鈕, 證明自己不是機器人, 再按最底下的 "Next Select a plan" 鈕 :




選擇左邊的免費方案 :




免費方案內容如下, 主要是允許三人協作, 儲存空間 500MB :




然後回答一份簡單問卷 (例如申請目的等) 即顯示確認郵件訊息 :




到郵箱收取確認信, 按信中的確認鈕後會開啟 GitHub 網頁, 並傳送設備驗證碼, 輸入所收到的驗證碼後即完成註冊.


二. 新增儲存庫與建立新分支 : 

有了 GitHub 帳號後就可以建立一個儲存庫 (repository) 專案了. 首先在登入 GitHub 後按 "Start a project" 鈕新增專案, 此專案我是要用來放置我的測試程式碼之用, 故取名 test :




在 Repository name 欄中填入儲存庫名稱, 同一個帳號下不可重複, 勾選 Public (預設公開) 或 Private (私人用) 後按 "Create repository" 鈕即可 :




因為有勾選在建立儲存庫時同時產生讀我檔做初始化提交 (initial commit), 所以預設會顯示 README.md 的內容 :




在左上角的 "Code" 頁嵌下方的下拉式選單顯示 "Branch: master", 表示這是 README.md 這個檔案的預設主分支 (Master branch), 可以點此下拉式選單, 輸入新分支名稱, 例如 READ.ME_new_20200303, 然後點一下底下的 "create branch: READ.ME_new_20200303" 超連結, 這會從主分支的 README.rd 複製一份拷貝到新分支 :




完成後會顯示新分支的 README.md 檔案, 內容與主分支的一樣 (拷貝), 但 "Branch" 頁嵌底下變成有 master 與 READ.ME_new_20200303 這兩個分支, 目前顯示的是新分支的 README.md 內容, 而不是主分支 master 的 README.md 內容 :




建立 README.md 檔案的新分支其實就是建立該檔案的一個副本 (測試版本), 主要用來進行測試或編輯, 等程式或檔案測試或編輯結束, 我們可以將其合併 (Merge) 到主分支上, 完成版本更新.

點右邊的那支筆可以編輯此新分支的 README.md 檔案 :




GitHub 內建編輯器 (附行號), 此處添加新的一行  :




然後在底下的 Commit changes 欄填入改變的註解後, 按 "Commit changes" 更新檔案 :




可見這個新分支的 README.rd 內容已經被改變了 :




按 "History" 按鈕會顯示版本變更的歷史 :




以上操作也可參考 "為自己學 Git" 一書作者高見龍的線上教學 :

Git教學:如何 Push 上傳到 GitHub?


三. 拉取要求 (pull request) 與合併到主分支 :

上面我們已透過建立新分支 (測試版) 複製了 README.md 的副本, 並且在此副本上進行了修改, 完成確認無誤後想要讓它回歸到主分支 (原始版) 呢? 這必須利用 Pull Resquest (PR) 功能, 從某個新分支做 PR 後再合併到主分支去. 首先選取要 PR 的新分支, 按右邊的 "New pull request" :




輸入 PR 的主旨與內容後按右下角的 "Create pull request" 鈕 :




這時會切到 Pull requests 頁嵌, 顯示剛剛我們所 PR 的結果, 可以點擊裡面有修改的檔案超連結, 確認是否可允許合併到主分支, 沒問題的話就按底下的 Merge pull request 鈕將新分支合併到主分支來 :





合併動作需要確認, 按 "Confirm merge" 即開始進行合併, 完成後顯示合併結果如下 :




切到 Code 頁嵌可見主分支的 README.md 內容已經更新為新分支的 README.rd 內容了 :




參考 :

Merge Branches into Master Branch in GitHub using Pull Requests

Pull request 其實還有更廣大的用途, 就是用在多人協作, 任何人可用 Fork 功能複製整個專案到自己的 GitHub 帳戶中進行修改, 改完後用 Pull request 通知原作者表示你已對此專案做了一些貢獻, 主分支的擁有者 (原版) 在確認這些新版檔案的價值後, 可以將其合併到主分支中, 參考高見龍非常棒的教學影片說明 :

與其它開發者的互動 - 使用 Pull Request(PR)




參考 :

GitHub 入門(一) — 如何建立Git專案
# GitHub Guide : Hello World project
网页版github上新建文件夹
https://www.youtube.com/watch?v=pytolws6aiE


2020-03-08 補充 :

我在 Stack Overflow 看到 GitHub 其實硬碟使用空間是 1GB, 單檔最大 100MB, 超過 1GB 會發信提醒.



參考 :

Repository size limits for GitHub.com

沒有留言 :