Thuta Learning
Git & GitHub: Collaboration and Professional Workflows
IntermediateDevOps & Toolsintermediate

GitHub Releases

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • GitHub Releases concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • Diagram ကို ဖတ်ပြီး Git/GitHub workflow ထဲမှာ state (သို့) data ဘယ်လိုစီးဆင်းသလဲ ခြေရာခံနိုင်ရန်
  • ကိုယ့် project/team အတွက် ဘယ်လို အသုံးချသင့်သလဲ ဆုံးဖြတ်နိုင်ရန်

နားလည်ထားရမယ့် အချက်

GitHub Release ဆိုတာ Git ရဲ့ သီးခြား concept မဟုတ်ဘဲ tag တစ်ခုအပေါ်မှာ တိုက်ရိုက် တည်ဆောက်ထားတာပါ။ Release တိုင်းက tag တစ်ခုတည်းကို ညွှန်ပြပြီး ထို tag ကလည်း commit တစ်ခုတည်းကို ညွှန်ပြပါတယ်။

  • Title တစ်ခု
  • ဘာတွေ ပြောင်းလဲသွားလဲ ဖော်ပြထားတဲ့ formatted release notes
  • Optional download asset များ (binary, zip build, checksum file)

Relationship က တစ်ဖက်သွားပါပဲ — release မရှိဘဲ tag ရှိနိုင်ပေမယ့် tag မရှိဘဲ release ရှိလို့ မရပါဘူး၊ publish လုပ်တဲ့အချိန်မှာ GitHub က tag ကို ချိတ်ပေးမယ် (သို့) အသစ်ဖန်တီးပေးမယ်ပါ။

Conceptဘယ်နေရာမှာ ရှိလဲ
TagPlain Git object — `git tag`, `git checkout`, `git describe` နဲ့ အလုပ်လုပ်ပြီး GitHub account မလိုပါ
ReleaseReleases tab ထဲက GitHub-specific page — tag တစ်ခုကနေ ဆောက်ပြီး notes/asset ထပ်ဖြည့်ထား

Developer တွေက GitHub account မလိုဘဲ plain git command တွေနဲ့ tag ကို အလုပ်လုပ်ကြပြီး၊ end user တွေကတော့ release notes ဖတ်ပြီး GitHub interface မှာ asset download ချကြပါတယ်၊ git ကို တိုက်ရိုက် မထိကြပါဘူး။

text
WHAT A RELEASE ADDS ON TOP OF A TAG
-----------------------------------
WHAT A RELEASE ADDS ON TOP OF A TAG
--------------------------------------
git tag v1.1.0  --------------->  one commit, pinned
      |
      | GitHub wraps the tag with:
      v
  +-------------------------------------+
  |  GitHub Release "v1.1.0"             |
  |   - release notes / changelog        |
  |   - downloadable assets (files)      |
  |   - a page in the Releases tab       |
  +-------------------------------------+

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Tag ဖန်တီးပြီး push ပါ

`git tag -a v1.1.0 -m "Version 1.1.0"` ပြီးရင် `git push origin v1.1.0` — GitHub က ညွှန်ပြထားတဲ့ commit ကို သိပြီးသားဖြစ်သွားပါတယ်။

GitHub ကနေ release draft ဆွဲပါ

Releases page > "Draft a new release" > push လုပ်ထားတဲ့ tag ကို ရွေးပါ။

Notes ရေး/auto-generate လုပ်ပါ

GitHub က commit message နဲ့ merged PR တွေကနေ changelog auto-generate လုပ်ပေးနိုင်ပါတယ်။

Asset များ ထည့်ပါ

Build file တွေကို release form ပေါ်ကို drag ထည့်နိုင်ပါတယ်။

Release ဖန်တီးခြင်းက GitHub ပါ၊ git မဟုတ်ပါ

Tag/push ကတော့ plain git command ဖြစ်ပေမယ့် release ကိုယ်တိုင်ကတော့ GitHub ရဲ့ web interface (သို့) `gh` CLI ကနေသာ ဖန်တီးရပါတယ်။

အတူတူ စမ်းရေးကြည့်မယ်

bash
# A local bare repo stands in for the GitHub-hosted remote, so the push
# below is genuinely real -- only the "create the Release from this tag on
# GitHub" step afterward has no terminal equivalent.
git init -q --bare ../remote-demo.git
git init -q -b main
git config user.name "Thuta Learner"
git config user.email "learner@example.com"
git remote add origin ../remote-demo.git

echo "console.log('v1.1');" > app.js
git add app.js
GIT_AUTHOR_DATE="2026-01-02T09:00:00" GIT_COMMITTER_DATE="2026-01-02T09:00:00" \
  git commit -m "Ship v1.1 feature"
git push -u origin main

git tag -a v1.1.0 -m "Version 1.1.0"
git push origin v1.1.0
You should see
$ git tag -a v1.1.0 -m "Version 1.1.0"

$ git push origin v1.1.0
To github.com:yourname/project.git
 * [new tag]         v1.1.0 -> v1.1.0

၅ မိနစ် စမ်းကြည့်

သင် control လုပ်နိုင်တဲ့ GitHub repo (သို့) practice repo တစ်ခုမှာ tag တစ်ခု push ပါ၊ ပြီးရင် Releases tab ကို ဖွင့်ပြီး ထို tag ကနေ release တစ်ခု draft ဆွဲပါ။ Release notes ထည့်ပါ၊ ချင်ရင် text file သေးသေးလေးတစ်ခုကို asset အဖြစ် ထည့်ကြည့်ပါ။ Tag က push လုပ်လိုက်တာနဲ့ ချက်ချင်း ရှိသွားပေမယ့် release ကတော့ GitHub interface ကနေ publish လုပ်မှသာ ရှိလာတယ်ဆိုတာ သတိထားမိပါ။

သတိလေးတစ်ချက်

Tag တစ်ခု push လုပ်ခြင်းက GitHub Release တစ်ခုကို auto ဖြင့် ဖန်တီးမပေးပါဘူး — release ကို GitHub interface (သို့) `gh` CLI ကနေ ကိုယ်တိုင် draft ဆွဲပြီး publish လုပ်ရပါဦးမယ်။

GitHub UI ကနေ release ကို ဖျက်လိုက်တာက အောက်ခံ tag ကို ဖျက်မပေးပါဘူး (ပြန်လှန်လည်း) — နှစ်ခုစလုံးကို သီးခြားစီ ရှင်းလင်းရပါလိမ့်မယ်။

GitHub Docs: About releasesGit & GitHub

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Tag တစ်ခု push လုပ်ခြင်းက GitHub Release တစ်ခုကို auto ဖြင့် ဖန်တီးမပေးပါဘူး — release ကို GitHub interface (သို့) `gh` CLI ကနေ ကိုယ်တိုင် draft ဆွဲပြီး publish လုပ်ရပါဦးမယ်။
  • GitHub UI ကနေ release ကို ဖျက်လိုက်တာက အောက်ခံ tag ကို ဖျက်မပေးပါဘူး (ပြန်လှန်လည်း) — နှစ်ခုစလုံးကို သီးခြားစီ ရှင်းလင်းရပါလိမ့်မယ်။
  • Destructive (သို့) history ပြောင်းလဲနိုင်တဲ့ command တိုင်းကို run မခင် git status နဲ့ လက်ရှိအခြေအနေကို အမြဲစစ်ပါ။

လေ့ကျင့်ခန်း

သင် control လုပ်နိုင်တဲ့ GitHub repo (သို့) practice repo တစ်ခုမှာ tag တစ်ခု push ပါ၊ ပြီးရင် Releases tab ကို ဖွင့်ပြီး ထို tag ကနေ release တစ်ခု draft ဆွဲပါ။ Release notes ထည့်ပါ၊ ချင်ရင် text file သေးသေးလေးတစ်ခုကို asset အဖြစ် ထည့်ကြည့်ပါ။ Tag က push လုပ်လိုက်တာနဲ့ ချက်ချင်း ရှိသွားပေမယ့် release ကတော့ GitHub interface ကနေ publish လုပ်မှသာ ရှိလာတယ်ဆိုတာ သတိထားမိပါ။

You'll know it worked when: $ git tag -a v1.1.0 -m "Version 1.1.0" $ git push origin v1.1.0 To github.com:yourname/project.git * [new tag] v1.1.0 -> v1.1.0

GitHub Releases | Thuta Learning