Git Nedir?

Bir önceki sayfada da yazmış olduğum üzere, Git bir dağıtık sürüm kontrol sistemidir. Sürümler arasındaki ilişkide Çizge Kuramını kullanır.1

Çizge kuramını bir ağ/haritalama sistemi gibi düşünebiliriz. Bu kurama göre iki adet unsur mevcuttur:

  • Düğüm: Haritadaki durak noktaları olarak düşünebiliriz.
  • Kenar : Burada genellikle tek yönlü olarak kullanılan (iki yönlü de olabilen) bir düğümden, başka bir düğüme gitmemizi sağlayan yöntem olarak düşünebiliriz.

Örnek verelim:

Mesela evimizden bakkala gitmek isteyelim. Bu durumda evimiz ve bakkal birer düğüm, arada gideceğimiz yol ise özelliği 20 metre, kuzey batı yönünde, asfalt olan bir kenardır diyebiliriz. Burada, amacımız sadece "evden bakkala doğru gitmek" olduğu için, bu kenarımız tek yönlüdür.

Bu durumda, bakkalımızı, "ev + yol" şeklinde tanımlayabiliriz.

Git'te mevcut olan her sürüm, 40 karakterden oluşan (SHA1 checksum) bir etiketle (örneğin: bd9dbf5aae1a3862dd1526723246b20206e5fc37) kaydedilir. Her etiket ise, kendisinden önceki sürümün etiketini ve yapılan değişikliklere ait bir etiketi referans olarak kullanır. Böylece iki şey başarılmış olur:

  1. SHA1 teknolojisi sebebiyle her sürüm tamamen farklı bir etikete sahip olur. (buna ek olarak isterseniz okuması kolay etiketler (tag) de atayabilirsiniz.)
  2. Her etiket, kendisinden önceki etikete (düğüm) ve üzerinde yapılmış değişikliğe (kenar) ait bir bilgi içerir.
  3. Bu sayede bulunulan noktadan itibaren geriye doğru her sürüme ulaşmak mümkün hale gelir.

Bu dökümanlardaki işlemlerin çoğu görsel arabirimler kullanılarak da yapılabiliyor. Fakat komut istemi kullanarak öğrenmenin hem faydaları hem de kolaylıkları var. Ben şahsen çoğu zaman grafiksel arabirimden istediğimi bulamayıp, hemen konsola geçiveriyorum. Şimdi önce bilgisayarlarımıza Git'i kuralım ve oradan devam edelim...

Kaynaklar