နားလည်ထားရမယ့် အချက်
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 | ဘယ်နေရာမှာ ရှိလဲ |
|---|---|
| Tag | Plain Git object — `git tag`, `git checkout`, `git describe` နဲ့ အလုပ်လုပ်ပြီး GitHub account မလိုပါ |
| Release | Releases tab ထဲက GitHub-specific page — tag တစ်ခုကနေ ဆောက်ပြီး notes/asset ထပ်ဖြည့်ထား |
Developer တွေက GitHub account မလိုဘဲ plain git command တွေနဲ့ tag ကို အလုပ်လုပ်ကြပြီး၊ end user တွေကတော့ release notes ဖတ်ပြီး GitHub interface မှာ asset download ချကြပါတယ်၊ git ကို တိုက်ရိုက် မထိကြပါဘူး။
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 ကနေသာ ဖန်တီးရပါတယ်။
အတူတူ စမ်းရေးကြည့်မယ်
# 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$ 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 releases — Git & GitHub