Git / Tag ба release

Tag ба release

Tag нь тодорхой commit-д байнгын нэр өгөх арга юм. Ихэвчлэн програмын хувилбаруудыг тэмдэглэхэд ашигладаг: v1.0.0, v2.1.3.

Tag гэж юу вэ?

Commit hash (a3f2c1d) нь санахад хэцүү. Tag ашигласнаар тухайн commit-д v1.0.0 гэх мэт утгатай нэр өгч болно.

код
a3f2c1d  ←  энэ commit-д "v1.0.0" tag өгнө

Tag-ийн 2 төрөл

Lightweight tag — зүгээр л нэр:

bash
git tag v1.0.0

Annotated tag — нэр + зохиогч + огноо + мессеж. Энэ нь илүү дэлгэрэнгүй тул ашиглахыг зөвлөдөг:

bash
git tag -a v1.0.0 -m "Анхны хувилбар"

Tag үүсгэх

Одоогийн commit-д tag үүсгэх:

bash
git tag -a v1.0.0 -m "Анхны албан ёсны хувилбар"

Өмнөх commit-д tag үүсгэх:

bash
# Эхлээд commit hash-г олно
git log --oneline

# Тухайн commit-д tag өгнө
git tag -a v0.9.0 a3f2c1d -m "Beta хувилбар"

Tag харах

bash
# Бүх tag жагсаах
git tag

# Тодорхой tag-ийн дэлгэрэнгүй мэдээлэл
git show v1.0.0

Хариу:

код
tag v1.0.0
Tagger: Болд Батаа <bold@example.com>
Date:   Mon Jan 15 10:30:00 2024 +0800

Анхны албан ёсны хувилбар

commit a3f2c1d...

Tag-г GitHub руу push хийх

Энгийн git push нь tag-уудыг push хийдэггүй — тусад нь push хийх хэрэгтэй:

bash
# Нэг tag push хийх
git push origin v1.0.0

# Бүх tag-г push хийх
git push --tags

GitHub release үүсгэх

Tag push хийсний дараа GitHub дээр release үүсгэж болно. Release нь хэрэглэгчдэд програмын шинэ хувилбарыг мэдэгдэх албан ёсны арга юм.

Release үүсгэх:

  1. Repository → Releases хэсэг
  2. Create a new release товч
  3. Choose a tagv1.0.0 сонгоно
  4. Release гарчиг бичнэ: v1.0.0 — Анхны хувилбар
  5. Release notes (өөрчлөлтийн жагсаалт) бичнэ
  6. Publish release товч дарна

Сайн release notes-ийн жишээ:

markdown
## Шинэ функцүүд

- Нэвтрэх систем нэмэгдсэн
- Dashboard хуудас нэмэгдсэн

## Засагдсан алдаанууд

- Navbar mobile дээр буруу харагдаж байсан засагдсан

## Суулгах

npm install
npm run dev

Semantic versioning (v1.0.0)

Хувилбарын дугааршилтын олон улсын стандарт — MAJOR.MINOR.PATCH:

| Хэсэг | Утга | Жишээ | | --------- | ---------------------------- | ------------------- | | MAJOR | Буцаж нийцэхгүй том өөрчлөлт | v1.0.0v2.0.0 | | MINOR | Буцаж нийцэх шинэ функц | v1.0.0v1.1.0 | | PATCH | Алдаа засах | v1.0.0v1.0.1 |

Практик жишээ:

код
v1.0.0  →  Анхны хувилбар
v1.0.1  →  Нэвтрэх хуудасны алдаа засагдсан
v1.1.0  →  Профайл хуудас нэмэгдсэн
v2.0.0  →  Бүрэн шинэ дизайн (хуучин API ажиллахгүй)

Tag устгах

bash
# Local tag устгах
git tag -d v1.0.0

# Remote tag устгах
git push origin --delete v1.0.0

Дараагийн хичээлд:

git reset болон git revert — буруу commit-г засах аргуудыг үзнэ.