iT邦幫忙

2021 iThome 鐵人賽

DAY 5
1
DevOps

不僅是程式碼代管平台 - Github 能做些什麼?系列 第 5

GitHub 時程與版本管理 - Milestone, Tag 與 Release

在這一篇文章,我們要來談,GitHub 中另外幾個進階的功能: Milestone (里程碑)、Tag (標籤) 與 Release (新版本),可以協助我們管理專案、程式碼與產品。首先,我們先來談談 Milestones,從字面上的解釋是:展示目前位置與目的地之間的距離,在專案管理中則表示階段性可交付的內容,用來衡量進度 (參考資料 wiki:里程碑)

在 GitHub Issue 內的 Milestone 具有下列功能

  1. 在主要的時間點上追蹤進度
  2. 相同類型的 Issue 群組化
  3. 作為處理得優先順序依據

你可以在 Issues 功能畫面中找到 Milestone

https://ithelp.ithome.com.tw/upload/images/20210905/20091494JvpQ5bYwrD.png

點選右邊 New milestone 按鈕
https://ithelp.ithome.com.tw/upload/images/20210905/20091494gFQ6p8F637.png

輸入 Title, Due date(截止日期), 與 Description,完成後點選右下角 Create milestone
https://ithelp.ithome.com.tw/upload/images/20210905/20091494YFghJlxk9C.png

完成設定後,你可以看見建立好的 milestone 與其狀態 (0% Complate, 0 open, 0 closed)
https://ithelp.ithome.com.tw/upload/images/20210905/20091494CRiTlUfmA9.png

理所當然,我們需要將 issue 連結到此 milestone,才會有正確的統計數字。回到 issue 畫面,點選我們在上一篇文章所建立的 issue: Create GitHub Page (文章連結:在 GitHub 上討論議題 - 建立第一個 Issue 與自訂 Labels),在畫面右手邊將此 issue 加入 milestone。

https://ithelp.ithome.com.tw/upload/images/20210905/20091494z8QGP4WXFK.png

回到 Milestone 畫面,即可看見 1 open 字樣,我們完成了 "將 issue 加入 milestone" 工作
https://ithelp.ithome.com.tw/upload/images/20210905/20091494MkWxfY3EXH.png


接下來,我們來談談 Tag 與 Release...

Tag 通常在歷史紀錄中,註記重要的節點,並且在 GitHub 上提供 Zip/Tar 原始檔案下載。 Tag 常見的使用方式像是版本管理 (v1.0 或 Release1.2)。對於頻繁更新與修復的軟體/服務,Tag 是非常重要的功能。 Tag 可以在目前的 commit 上加入,也可以後續再加入。Tag 大致上可以分兩類:

  • Lightweight (輕量級標籤)
  • Annotated (有註解的標籤)

在這裡,需要有一些的 Git 指令使用經驗。在本篇文章,我們只簡易說明如何使用 Tag,不再細部 Git 相關功能,若您有興趣可以參考:Git 基礎-標籤

你可以在命令列使用 git tag 檢視所有的 Tag (但因為我們的範例專案尚未建立任何 Tag,所以會是空白的)
git tag
https://ithelp.ithome.com.tw/upload/images/20210905/20091494XmjMe5FJp9.png

你可以透過 git log --oneline --graph --decorate --all 檢視更改紀錄。黃色字部分即為 commit hash id
https://ithelp.ithome.com.tw/upload/images/20210905/20091494ney4gE8BGv.png

你可以使用下列指令,對於特定 commit 建立 Tag
指令格式:git tag -a [版本] -m "[版本訊息]" [commit hash id]
指令範例:git tag -a v0.1 -m "0.1 release" 990e0bd
https://ithelp.ithome.com.tw/upload/images/20210905/20091494mYPXTaAZ3G.png

重新使用 git tag 檢視紀錄
https://ithelp.ithome.com.tw/upload/images/20210905/20091494b6dowQ3NIa.png

確認沒問題,將 tag 推上 github,指令為 git push origin --tags (將所有標籤推送上去)
https://ithelp.ithome.com.tw/upload/images/20210905/200914947zvIJwjMJC.png

您可以開啟 GitHub 上你的 Repo,即可看見上方 Tag 數量有增加
https://ithelp.ithome.com.tw/upload/images/20210905/20091494QpBfpSaAxM.png

GitHub 上 Tag 功能可以讓您直接下載此版本的原始程式 (Zip/Tar格式)
https://ithelp.ithome.com.tw/upload/images/20210905/20091494g2AZlM01Le.png

https://ithelp.ithome.com.tw/upload/images/20210905/20091494LoIO6sUNVG.png


Release 即為釋出的正式版,是 DevOps 中重要的程序,屬於交付工作。在 GitHub Release 功能中,使用者可以下載原始程式碼與可執行程式 (binary file)。在建立 Release 時,必須注意:

  1. 此功能必須建立在 Tag 上
  2. 釋出的新版本必須選擇Tag
  3. 需要加入 Release note
  4. 上傳可執行的程式 (Binary file)

在 Repo 畫面,我們點選右邊 Create release
https://ithelp.ithome.com.tw/upload/images/20210905/20091494PFhz75hWPJ.png

選擇 Tag,輸入名稱與描述,上傳可執行檔案,完成後點選下方 Publish release 按鈕即完成發佈新版本

https://ithelp.ithome.com.tw/upload/images/20210905/20091494mNRysKqLKk.png

https://ithelp.ithome.com.tw/upload/images/20210905/200914940bHCgoTcnn.png


經過本篇文章,你應該對於 GitHub 中 Milestone, Tag, 與 Release 功能有完整的了解。經過前面這五篇文章對 GitHub 基本的介紹,從下一篇文章開始,我們將要正式開始進入 GitHub DevOps 主題,內容包含 Development, Project, Action workflow(CI/CD), Security 與實際案例分享。


上一篇
GitHub 上討論議題 - 建立第一個 Issue 與自訂 Labels
下一篇
GitHub DevOps 流程參考實現
系列文
不僅是程式碼代管平台 - Github 能做些什麼?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言