একটা tag স্থায়ীভাবে একটা নির্দিষ্ট commit চিহ্নিত করে — সবচেয়ে common একটা release version রেকর্ড করতে, যাতে "v1.0.0" সবসময় আসলে ship করা ঠিক commit-টা নির্দেশ করে।
# একটা lightweight tag — শুধু একটা commit নির্দেশ করা একটা নাম
git tag v1.0.0
# একটা annotated tag — একটা message, author, আর date সহ (release-এর জন্য recommended)
git tag -a v1.0.0 -m "First stable release"git tag
# v1.0.0
git show v1.0.0
# tag-এর message আর এটা নির্দেশ করা commit দেখায়একটা সাধারণ git push-এ tag অন্তর্ভুক্ত না — এগুলো স্পষ্টভাবে push করা দরকার।
git push origin v1.0.0
# একবারে প্রতিটা tag push করুন
git push origin --tagsgit checkout v1.0.0
# আগের HEAD lesson থেকে যেকোনো নির্দিষ্ট commit checkout করার মতোই
# একই detached HEAD পরিস্থিতিGitHub-এ, একটা Release release note সহ একটা tag, আর ঐচ্ছিকভাবে যুক্ত download-করা-যায় file (একটা compiled binary, একটা build artifact) — একটা repository-র "Releases" section থেকে তৈরি করা, সাধারণত একটা বিদ্যমান tag-এর উপর ভিত্তি করে।
| একটা সাধারণ Git tag | একটা GitHub Release |
|---|---|
| শুধু একটা commit নির্দেশ করা একটা নাম | একটা tag, প্লাস formatted release note আর ঐচ্ছিক file attachment |
| যেকোনো Git host, বা কোনো host ছাড়াই কাজ করে | tag-এর উপরে তৈরি একটা GitHub-নির্দিষ্ট feature |
| git tag -a / git push origin | GitHub-এর web interface বা gh CLI দিয়ে তৈরি |
স্বয়ংক্রিয়ভাবে তৈরি হওয়া release note
GitHub দুটো tag-এর মধ্যে commit আর merge হওয়া PR থেকে স্বয়ংক্রিয়ভাবে release note generate করতে পারে — শুরু থেকে একটা changelog লেখা বাঁচায় এমন সত্যিকারভাবে useful একটা শুরুর পয়েন্ট।