Apa itu Git Tags??
Tag Git adalah penunjuk ke komit tertentu. Mereka seperti bookmark. Anda dapat menggunakan konvensi apa pun yang ingin Anda buat tag. Tetapi sebagian besar tim pengembangan menggunakan nomor versi seperti v1.0.1 atau v.1.1-a1 untuk membuat tag.
Membuat Tag
Ada dua jenis tag di Git:
- Tag Ringan
- Tag beranotasi
Tag Ringan
Tag ringan mudah dibuat. Anda cukup menggunakan baris perintah berikut:
tag $gitTag ini disimpan di .git folder repositori kerja Anda.
Mari buat beberapa tag Git ringan:
$git tag v1.0.1$git tag Rilis-20190401
Dalam kasus pertama, kami membuat tag dengan "v1".0.1”. Dalam kasus kedua, kami membuat tag dengan "Release-20190401". Tag ringan tidak mengembalikan nilai apa pun. Juga, penting untuk menunjukkan bahwa karena kedua tag ini dilakukan secara berurutan, mereka menunjuk ke komit yang sama.
Tag beranotasi
Tag beranotasi memungkinkan Anda menyimpan lebih banyak informasi. Anda dapat menggunakan opsi “-a” untuk membuat tag ini:
$git tag -aMari kita coba membuat tag beranotasi:
git tag -a v1.0.2Ini akan memunculkan jendela teks bagi Anda untuk memasukkan komentar yang akan terlihat seperti ini:
## Tulis pesan untuk tag:
# v1.0.2
# Baris yang dimulai dengan '#' akan diabaikan.
Masukkan komentar dan simpan. Jadi, sekarang tag Anda v1.0.2 disimpan dengan komentar. Atau, Anda dapat langsung memasukkan komentar di baris perintah seperti ini:
git tag -a v1.0.3 -m "Versi saya 1.0.3"Menemukan Tag di Kode Anda
Sekarang kita telah membuat beberapa tag, mari kita lihat apa yang kita miliki:
$git tag -lRilis-20190401
v1.0.1
v1.0.2
v1.0.3
Kami dapat melihat semua tag kami ditampilkan dalam urutan abjad. Anda bisa mendapatkan informasi lebih lanjut tentang tag dengan menggunakan “-n
Rilis-20190401 README yang Diperbarui.md
v1.0.1 README yang diperbarui.md
v1.0.2 Versi saya 1.0.2
v1.0.3 Versi saya 1.0.3
Di sini Anda dapat melihat perbedaan antara tag ringan dan beranotasi. Dalam contoh ini, "Rilis-20190401" dan "v1".0.1 ”adalah tag ringan. "v1".0.2" dan "v1".0.3” adalah tag beranotasi. Semuanya menunjuk ke komit yang sama (komit 34671):
$git logkomit 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HEAD -> master, tag: v1.0.4)
Pengarang: Zak H
Tanggal: Sab 6 Apr 21:06:02 2019 -0700
Ditambahkan Fitur 2
komit 161c6e564e79624623ed767397a98105426d0ec4
Pengarang: Zak H
Tanggal: Sab 6 Apr 21:05:25 2019 -0700
Ditambahkan Fitur 1
komit 34671d824f9b9951e57f867998cb3c02a11c4805 (tag: v1.0.3, tag: v1.0.2,
tag: v1.0.1, tag: Rilis-20190401)
Pengarang: Zak H
Tanggal: Sab 6 Apr 20:24:53 2019 -0700
README yang diperbarui.md
komit afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (asal/master)
Pengarang: Zak H
Tanggal: Sab 6 Apr 20:23:55 2019 -0700
init
Namun, tag ringan menunjukkan komentar dari komit itu sendiri yaitu “README yang Diperbarui.md”, sementara tag beranotasi menunjukkan komentar individu yang ditambahkan ke mereka selama proses pembuatan tag.
Tip: Jika Anda ingin menemukan nomor komit dari tag tertentu, Anda dapat menggunakan perintah “git show”:
$git tampilkan v1.0.3tandai v1.0.3
Tag: Zak H
Tanggal: Sab 6 Apr 20:43:30 2019 -0700
versi saya 1.0.3
komit 34671d824f9b9951e57f867998cb3c02a11c4805 (tag: v1.0.3, tag: v1.0.2, tandai:
v1.0.1, tag: Rilis-20190401)
Pengarang: Zak H
Tanggal: Sab 6 Apr 20:24:53 2019 -0700
README yang diperbarui.md
diff --git a/README.md b/BACA.md
indeks 9daeafb… 180cf83 100644
--- a/BACA.md
+++ b/BACA.md
@@ -1 +1 @@
-uji
+tes2
Menandai Komit Lama
Anda juga dapat kembali dan menandai komit yang lebih lama. Mari kita lihat log:
$git log --oneline106e0bb (KEPALA -> master, tag: v1.0.4) Menambahkan Fitur 2
161c6e5 Menambahkan Fitur 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1, tag: Rilis-20190401) README yang diperbarui.md
afe9b0c (asal/master) Init
$
Kami melihat bahwa komit 161c6e5 tidak memiliki tag terkait. Kita dapat menandai komit ini seperti ini:
$git tag -a Rilis-20190402 161c6e5Ini akan memunculkan jendela komentar. Setelah kami memasukkan komentar, kami dapat melihat bahwa kami memiliki komit yang ditandai sekarang:
$git tag -n1Rilis-20190401 README yang Diperbarui.md
Release-20190402 Menambahkan tag ke komit yang lebih lama
v1.0.1 README yang diperbarui.md
v1.0.2 Versi saya 1.0.2
v1.0.3 Versi saya 1.0.3
v1.0.4 Fitur Ditambahkan 2
Menghapus Tag
Misalkan, Anda memutuskan bahwa Anda tidak menginginkan tag "Rilis-" karena membingungkan. Pertama-tama Anda dapat menemukan semua tag “Rilis-“:
$git tag -l Rilis*Rilis-20190401
Rilis-20190402
Sekarang, Anda dapat menghapusnya dengan opsi "-d":
$git tag -d Rilis-20190401Tag 'Release-20190401' yang dihapus (sebelumnya 34671d8)
$git tag -d Rilis-20190402
Tag 'Release-20190402' yang dihapus (sebelumnya 6ee37bc)
Jika kita memeriksa tag lagi, kita hanya akan melihat tag yang dimulai dengan "v":
$git tag -n1v1.0.1 README yang diperbarui.md
v1.0.2 Versi saya 1.0.2
v1.0.3 Versi saya 1.0.3
v1.0.4 Fitur Ditambahkan 2
Menimpa Tag
Misalkan, kita memiliki situasi di mana "v1".0.Tag 4” mengarah ke Fitur 2:
$git log --onelined7b18a4 (HEAD -> master) Menambahkan Fitur 3
106e0bb (tag: v1.0.4) Menambahkan Fitur 2
161c6e5 Menambahkan Fitur 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1) README yang diperbarui.md
afe9b0c (asal/master) Init
Tapi kami ingin tag “v1.0.4 ”untuk menunjuk pada Fitur 3. Jika kami mencoba memberi tag ulang, kami mendapatkan kesalahan ini:
$git tag v1.0.4 d7b18a4fatal: tag 'v1.0.4' sudah ada
Kami dapat mengatasi masalah ini dengan opsi "-f":
$git tag -f v1.0.4 d7b18a4Tag yang diperbarui 'v1.0.4' (sebelumnya 106e0bb)
Jika kami memeriksa log lagi, kami melihat bahwa tag telah pindah ke komit yang kami inginkan:
$git log --onelined7b18a4 (KEPALA -> master, tag: v1.0.4) Menambahkan Fitur 3
106e0bb Menambahkan Fitur 2
161c6e5 Menambahkan Fitur 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1) README yang diperbarui.md
afe9b0c (asal/master) Init
Atau, Anda juga dapat menghapus tag dan menambahkannya kembali ke komit baru.
Berbagi Tag dengan Pengguna Lain
Saat Anda memasukkan kode ke repositori jarak jauh, tag Git tidak terdorong secara otomatis. Jika Anda ingin membagikan tag Anda dengan pengguna lain, Anda harus mendorongnya secara eksklusif.
Tag dapat didorong seperti ini:
$git Dorong Asal v1.0.4Menghitung benda: 12, selesai.
Kompresi delta menggunakan hingga 4 utas.
Mengompresi objek: 100% (4/4), selesai.
Objek penulisan: 100% (12/12), 902 byte | 150.00 KiB/s, selesai.
Total 12 (delta 0), digunakan kembali 0 (delta 0)
Kepada /Users/zakh/_work/LearnGIT/git_tagging/remote/project_mayhem
* [tag baru] v1.0.4 -> v1.0.4
Sekarang, jika pengguna lain mengkloning repositori jarak jauh, mereka hanya akan melihat tag yang didorong (“v1.0.4" dalam hal ini).
Menggunakan Cabang vs Tag
Cabang berguna untuk fitur baru atau bereksperimen. Umumnya, Anda ingin bercabang ketika ada pekerjaan di masa depan yang perlu dilakukan dan pekerjaan itu mengganggu perkembangan Anda saat ini. Di sisi lain, tag lebih berguna sebagai snapshot. Anda harus menggunakannya untuk mengingat hal-hal tertentu yang telah Anda lakukan.
Kesimpulannya
Tag Git adalah fitur yang kurang dimanfaatkan yang dapat memberikan cara yang bagus untuk melacak rilis dan fitur khusus. Jika Anda menyiapkan praktik yang baik di sekitar tag, ini dapat membantu Anda berkomunikasi dengan mudah dengan tim pengembangan dan menyederhanakan proses pengembangan Anda.
Pelajaran lanjutan:
- https://git-scm.com/book/en/v2/Git-Basics-Tagging
- https://rekayasa perangkat lunak.pertukaran tumpukan.com/questions/165725/git-branching-and-tagging-best-practices
- https://www.atlassian.com/git/tutorials/inspecting-a-repository/git-tag
- https://en.wikipedia.org/wiki/Software_versioning
- https://www.techopedia.com/definition/25977/versi perangkat lunak