Git, her commit sonrası repodaki belgeleri bir hash fonksiyonundan geçirerek (SHA-1) 20 byte bir değer üretir. Genellikle hex olarak 40 digit halinde gösterilir. Böylece her commit bir hash değeri ile ilişkilendirilebilir ve hash değeri kullanılarak hangi committen bahsedildiği anlaşılmış olur. Commit sonrası git log komutu ile geçmiş commitlerin yorumları, tarihleri ve hash değerleri gösterilebilir.
Örnek bir hash değeri: 3f17f50306b455d8b3fb346060787cc5621c25b4

Bu değer çok uzun olduğu için ilk 7 basamağı da kısaca kullanılabilir. (ayarlanırsa minimum 4 basamak) Böylece her commit 7 digitlik bir alfanümerik string ile indexlenmiş olur.
Ancak geliştirme aşamasından sonra çıkarılmak istenen versiyonları bir hash değeri üzerinden hatırlamak oldukça zor olacağı için tagging kullanılabilir. İki türlü tagging vardır.
- Lightweight tag, bir string değeri ile hash değerini yani commiti ilişkilendirir. Örneğin v1.1.2 stringinin, 3f17f50 hash değerinin gösterdiği commiti göstermesi sağlanır.
git tag -a v1.1.2 3f17f50
- Annotated tag, git reposunden bir obje olarak ilgili commiti saklar. Ayrıca tag comment, email, tarih, lisans gibi bilgileri de saklayabilir. Bundan dolayı paylaşılacak sürümlerin bu şekilde taglenmesi tavsiye ediliyor. Lightweigten farkı -a -s -m opsiyonları ile çağırılmasıdır. Eğer hash belirtilmezse mevcut commit taglenir.
git tag -a v1.4 -m "my version 1.4"
Sık kullanılan bazı komutlar
Tüm tagleri göster
git tag
Remote repo’ya tag verilerini gönder
git push origin v1.5
Mevcut bir tag’i sil
git tag -d v1.1.2
Tagin gösterdiği commit’e geç
git checkout v2.0.0