Git Tag — Git

Tag menandai commit tertentu dengan nama yang mudah diingat, biasanya untuk release version. $ git tag v1.0 $ git tag v1.1 $ git tag v1.0 v1.1 Kapan pakai…

Tag adalah nama permanen yang ditempel di satu commit, biasanya untuk menandai versi rilis seperti v1.0. Bayangin sebuah buku. Penulisnya terus merevisi naskah, tapi buku "cetakan pertama" yang sudah dibeli orang isinya tetap. Branch itu seperti naskah yang terus berubah, sedangkan tag itu cap "cetakan pertama": dia menunjuk satu versi naskah, selamanya.

🧪 Tebakan cepat: kamu bikin tag v1.0 di commit "release pertama", lalu commit dua kali lagi di main. Sekarang v1.0 menunjuk ke commit yang mana? Tebak dulu, jawabannya ada di bagian "Tag diam, branch jalan".

Bikin tag dan lihat daftarnya

git tag v1.0   # tempel tag v1.0 di commit tempat kamu berada
git tag        # tampilkan semua tag

Di repo yang app.js-nya berisi console.log("v1"), hasilnya begini (hash-mu pasti beda):

$ git commit -m "release pertama"
[main (root-commit) 4c1d2e3] release pertama
 1 file changed, 1 insertion(+)
$ git tag v1.0
$ git tag
v1.0

Tag diam, branch jalan

Lanjutkan repo tadi dengan dua commit lagi. C1, C2, C3 adalah commit-commitnya:

Langkah Perintah main di v1.0 di
1 git commit -m "release pertama" C1 belum ada
2 git tag v1.0 C1 C1
3 git commit -m "tambah fitur 2" C2 C1
4 git commit -m "tambah fitur 3" C3 C1

Branch bergeser tiap kali kamu commit, tag gak pernah. v1.0 tetap di C1, kecuali kamu sendiri yang menghapus dan membuatnya ulang. Itu jawaban tebakannya. git log --oneline menunjukkan dua-duanya:

$ git log --oneline
9e8f7a6 (HEAD -> main) tambah fitur 3
5b4c3d2 tambah fitur 2
4c1d2e3 (tag: v1.0) release pertama

Karena gak bergerak, tag cocok untuk menandai "kode persis yang dirilis sebagai v1.0". Kalau minggu depan ada laporan bug di v1.0, kamu tahu commit mana yang harus diperiksa.

Lightweight dan annotated

Ada dua jenis tag:

git show menampilkan bedanya. Tag annotated memperlihatkan data tag-nya dulu, baru commit-nya:

$ git show v1.1
tag v1.1
Tagger: Sari <[email protected]>
Date:   Thu Oct 8 10:15:00 2026 +0700

Rilis 1.1: fitur 2 dan 3

commit 9e8f7a6b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f (HEAD -> main, tag: v1.1)
Author: Sari <[email protected]>
Date:   Thu Oct 8 10:12:00 2026 +0700

    tambah fitur 3

Sesudahnya Git juga mencetak perubahan di commit itu. git show v1.0, yang lightweight, langsung mulai dari baris commit ..., karena gak ada data tag yang bisa ditampilkan. Untuk rilis, pakai annotated: tercatat siapa yang merilis, kapan, dan catatannya.

Mengirim tag ke GitHub

Tag dibuat di komputermu saja, dan git push biasa gak ikut mengirimnya. Kirim tag secara terpisah:

git push origin v1.0     # kirim satu tag
git push origin --tags   # kirim semua tag

origin adalah nama repo online-mu, biasanya di GitHub. Cara menyambung ke sana dan push dibahas lengkap di pelajaran Git Push & Pull. Di sini cukup ingat: tag dikirim terpisah.

💡 Nama tag: semantic versioning

Kebanyakan proyek menamai tag dengan pola vMAJOR.MINOR.PATCH, misalnya v1.4.2. Perbaikan bug kecil menaikkan PATCH (v1.4.3), fitur baru yang gak merusak apa pun menaikkan MINOR (v1.5.0), dan perubahan yang bikin kode lama gak jalan lagi menaikkan MAJOR (v2.0.0). v1.0 di latihan ini adalah bentuk pendeknya.

⚠️ Jebakan yang sering ketemu

TL;DR: Tag adalah nama permanen di satu commit, untuk menandai rilis. git tag v1.0 membuat tag lightweight (cuma penunjuk), git tag -a v1.0 -m "pesan" membuat tag annotated yang menyimpan metadata (tagger, tanggal, pesan), git tag menampilkan daftarnya, dan git show v1.0 menampilkan isinya. Branch bergeser tiap commit, tag diam di tempat. Tag gak ikut git push biasa: kirim dengan git push origin v1.0 atau git push origin --tags.

Yang akan kamu pelajari