Git Tag (Menggunakan Git Versi 4)

Oke sebelumnya saya telah membuat tutorial git sampai ke versi 3 http://imron02.blogspot.com/2014/01/git-branch-dan-merge-menggunakan-git.html, dan setelah mempelajari tutorial mengenai git branch dan git merge pada tutorial sebelumnya, rasanya belum lengkap kalau tidak mempelajari git tag juga. Lalu untuk apa si git tag itu?
Jadi kalau menurut saya, git tag itu akan sangat berguna sekali apabila kita mendevelopment suatu aplikasi yang berkelanjutan. Misalnya sebagai contoh, kita sering melihat aplikasi yang pasti mempunyai penomoran saat setiap aplikasi itu release. Contoh build v1.0 atau versi 1.0-beta3 dan lain-lain. Nah kita juga bisa melakukan penamaan itu terhadap aplikasi yang sudah stabil/siap release dengan menyertakan nomor versi release-nya (tagging)

.
Sedikit visualisasi dari saya mengenai git tag ini:

Oke kita langsung saja memasuki contoh pemakaiannya. Masih seperti tutorial-tutorial sebelumnya yaitu masih menggunakan repository Example. Tampilan pada repository example:

Lalu buatlah sebuah file dan jangan lupa untuk melakukan git push

$ touch versi-1.html
$ git add versi-1.html

$ git commit -m "Added Version 1.0"
[master e59d24d] Added Version 1.0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 versi-1.html

$ git push origin master
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 289 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 1 (delta 0)
To git@gitlab.com:imron02/example.git
6c750ca..e59d24d master -> master

Lalu sekarang coba membuat versi aplikasinya:

$ git tag -a 1.0 -m "Version 1.0"

Lalu push tag itu ke remote repository dengan perintah:

$ git push origin 1.0
Counting objects: 1, done.
Writing objects: 100% (1/1), 165 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@gitlab.com:imron02/example.git
* [new tag] 1.0 -> 1.0

Lalu apabila kita ingin melihat apakah sudah berhasil melakukan tag pada aplikasinya, maka ketiklah perintah berikut ini:

$ git tag
1.0

Lihatlah gambar berikut ini apabila pembuatan tag sudah berhasil.

Dan sekarang saya akan coba membuat 1 buah file lagi, tetapi mem-push-nya pada tag yang berbeda:

$ touch versi-2.html
$ git add versi-2.html
$ git commit -m versi-2.html
[master af4b377] versi-2.html
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 versi-2.html

# Melakukan push
$ git push origin master
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 282 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@gitlab.com:imron02/example.git
e59d24d..af4b377 master -> master

# Membuat Tag baru
$ git tag -a 2.0 -m "Version 2.0"
$ git push origin 2.0
Counting objects: 1, done.
Writing objects: 100% (1/1), 166 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@gitlab.com:imron02/example.git
* [new tag] 2.0 -> 2.0

Lalu sekarang lihatlah kita telah mempunyai 2 buah tag yang berbeda dan juga isi dari masing-masing versi itu juga berbeda filenya.

$ git tag
1.0
2.0

Dan ini dia perbedaan untuk masing-masing tag-nya:

Branch Master
Tag (Versi) 1.0
Tag (Versi) 2.0

Dari gambar di atas, terlihat perbedaan isi dari masing-masing repositorynya antara repositori master, tag 1.0, dan tag 2.0. Mungkin pertanyaan yang akan muncul adalah, kenapa pada tag 2.0 itu isinya seperti pada repositori master?

Isi dari repositori tag 2.0 itu sama dengan master dikarenakan pada saat melakukan push terakhir kali, push ditujukan kepada branch master terlebih dahulu, baru kemudian dilanjutkan dengan pembuatan tag 2.0 dan baru melakukan push ke tag 2.0. Karena dari situlah isi dari tag 2.0 sama seperti branch master pada saat terakhir kali di push.

Catatan: Perintah push terhadap tag ini hanya bisa dilakukan 1 kali saja (satu kali push). Untuk membuktikan itu cobalah ikuti perintah berikut ini:

$ touch versi-3.html
$ git add versi-3.html

# Melakukan commit
$ git commit -m "push ke tag 1 dan 2"
[master e741615] push ke tag 1 dan 2
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 versi-3.html

# Melakukan push
$ git push origin --tags # Melakukan push ke semua tag (1.0 dan 2.0)
Everything up-to-date

Lihat hasil yang didaptkan adalah “Everything up-to-date”. Berbeda sekali apabila kita melakukan push ke origin master maka push itu akan bisa dilakukan.
Jadi gunakanlah git tag ini untuk menandakan setiap versi aplikasi yang ingin di-release. Dan apabila ingin tetap dilakukan push ke setiap-tiap versi yang berbeda. Maka gunakanlah git branch yang sudah dibahas sebelumnya di sini

Menghapus tag

Apabila ingin melakukan penghapusan tag, maka gunakanlah perintah berikut ini:

# git tag -d nomor versinya
$ git tag -d 1.0
Deleted tag '1.0' (was 599d909)

Nah keren bukan git ini?
Sumber: http://git-scm.com/book/en/Git-Basics-Tagging

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s