Git Nedir? Sürüm Kontrolü Nasıl Çalışır?

Kod ve metin değişikliklerini izlenebilir hâle getiren Git’in commit, branch, merge ve ekip çalışması mantığını öğrenin.

arteryum
5 dk. okuma süresi
Git, ekiplerin değişiklikleri izlenebilir ve geri alınabilir biçimde yönetmesini sağlar.

Git nedir? Dosyalardaki değişiklikleri zaman içinde kaydeden, özellikle yazılım geliştirmede kullanılan dağıtık sürüm kontrol sistemidir. Her geliştirici projenin geçmişini içeren yerel bir depoya sahip olabilir; çevrimdışı çalışabilir, değişiklikleri karşılaştırabilir ve uygun zamanda uzak depoyla paylaşabilir.

Git yalnız yedekleme aracı değildir. Hangi değişikliğin kim tarafından ve neden yapıldığını izlemeyi, farklı çalışmaların dallarda ayrılmasını ve kontrollü biçimde birleştirilmesini sağlar.

Sürüm kontrolü nedir?

Sürüm kontrolü, bir dosya veya dosya grubundaki değişiklikleri kaydederek önceki hâllere dönmeyi sağlayan sistemdir. Tarihli klasör kopyalarının aksine değişiklik geçmişi düzenli, karşılaştırılabilir ve ekip tarafından paylaşılabilir durumdadır. Kod dışında belge, yapılandırma ve metin tabanlı içerikler de izlenebilir.

Git nasıl çalışır?

Git, proje durumlarını bir dizi anlık görüntü olarak ele alır. Dosya değiştirildiğinde önce çalışma alanında bulunur. Seçilen değişiklikler hazırlama alanına alınır; commit oluşturulduğunda kalıcı proje geçmişine kaydedilir.

Git çalışma alanı, hazırlama alanı, yerel depo ve uzak depo arasında add commit push pull akışını gösteren şema
Git’in temel akışı; değişikliği hazırlama, anlamlı bir commit oluşturma ve uzak depoyla paylaşma adımlarından oluşur.

Git’in temel kavramları

  • Repository: Proje dosyaları ve Git geçmişinin bulunduğu depo.
  • Commit: Seçilen değişikliklerin açıklamayla kaydedilmiş anlık görüntüsü.
  • Branch: Ana geliştirme çizgisinden bağımsız ilerleyen hafif çalışma dalı.
  • Merge: Bir daldaki değişiklikleri başka dala birleştirme işlemi.
  • Remote: Ekibin paylaşım için kullandığı uzak depo adresi.
  • Clone: Uzak deponun geçmişiyle birlikte yerel kopyasını oluşturma.
  • Pull ve push: Uzak değişiklikleri alma ve yerel commit’leri gönderme.

GitHub, GitLab ve Git aynı şey midir?

Hayır. Git sürüm kontrol sistemidir. GitHub, GitLab ve benzeri hizmetler Git depolarını barındırır; erişim yönetimi, kod inceleme, sorun takibi ve otomasyon özellikleri ekler. Git bu hizmetler olmadan yerel olarak veya kurumun kendi sunucusunda kullanılabilir.

Git’in temel çalışma akışı

  1. Depoyu klonlayın veya yeni depo oluşturun.
  2. Çalışma dalınızı güncel ana daldan açın.
  3. Küçük ve ilişkili değişiklikler yapın.
  4. Değişiklik farkını gözden geçirin.
  5. İlgili dosyaları hazırlama alanına ekleyin.
  6. Neyi ve neden değiştirdiğinizi açıklayan commit oluşturun.
  7. Dalınızı uzak depoya gönderin ve inceleme isteği açın.
  8. Test ve inceleme sonrasında değişikliği ana dalla birleştirin.

Branch neden kullanılır?

Branch, yeni özellik, hata düzeltmesi veya deneme çalışmasını kararlı ana sürümden ayırır. Git dalları hafif işaretçiler olduğundan hızlı oluşturulabilir. Kısa ömürlü dallar, küçük değişiklikler ve sık birleştirme; çakışmaları ve uzun süren ayrışmayı azaltır.

Merge conflict nedir?

İki dal aynı dosyanın aynı bölümünü uyumsuz biçimde değiştirdiğinde Git hangi içeriğin korunacağına otomatik karar veremeyebilir. Geliştirici çatışmalı bölümü inceleyip doğru sonucu oluşturur, test eder ve yeni commit ile çözümü kaydeder. Çatışma hata değil, insan kararı gerektiğini bildiren bir durumdur.

İyi commit nasıl yazılır?

  • Tek bir mantıksal değişikliği kapsamalıdır.
  • Mesajı kısa ama değişikliğin amacını açıklayıcı olmalıdır.
  • Çalışmayan ara durumlar paylaşılmadan önce düzenlenmelidir.
  • Gizli bilgi, parola veya kişisel veri içermemelidir.
  • Gerekliyse ilgili iş veya hata kaydına bağlantı vermelidir.

Git güvenliği için nelere dikkat edilmeli?

API anahtarı, parola, sertifika ve özel anahtar depoya eklenmemelidir. Bir sır geçmişe commit edildiyse yalnız dosyayı silmek yeterli değildir; sır derhâl iptal edilmeli veya döndürülmeli, ardından geçmiş temizliği değerlendirilmelidir. Uzak depo erişimlerinde çok faktörlü doğrulama, en az yetki ve korumalı dallar kullanılmalıdır.

Bağımlılık ve otomasyon dosyaları da saldırı yüzeyidir. Kod inceleme, imzalı sürüm, otomatik test ve güvenlik taraması genel siber güvenlik yaklaşımının parçası olmalıdır.

Git yedekleme yerine geçer mi?

Git, metin tabanlı proje geçmişini güçlü biçimde korur; ancak veri tabanı, medya arşivi veya çalışma ortamının eksiksiz yedeği değildir. Uzak depo tek kopya olarak kullanılmamalı; kritik sistemler için erişimden bağımsız, düzenli test edilen yedekleme planı kurulmalıdır.

Git hangi içerikler için uygun değildir?

Çok büyük ikili dosyalar, sık değişen video arşivleri ve veri tabanı yedekleri depo boyutunu hızla büyütebilir. Bu içerikler nesne depolama veya uygun dosya yönetim sistemiyle saklanabilir; Git’te yalnız sürüm bilgisi ve yapılandırma tutulabilir. Büyük dosya desteği gerektiğinde Git LFS gibi ek çözümler değerlendirilir.

Git ile otomasyon nasıl kurulur?

Uzak depodaki değişiklikler test, güvenlik taraması, paketleme ve dağıtım süreçlerini tetikleyebilir. Bu otomasyonlar API’ler ve CI/CD hizmetleriyle çalışır. Üretime dağıtımda onay, erişim ayrımı ve geri alma adımları özellikle korunmalıdır.

Sık sorulan sorular

Git kullanmak için programcı olmak gerekir mi?

Hayır. Metin, yapılandırma ve dokümantasyon üreten ekipler de kullanabilir; ancak temel commit, branch ve çakışma kavramlarını öğrenmek gerekir.

Commit silinen dosyayı geri getirir mi?

Dosya daha önce commit edildiyse geçmişteki sürümü geri alınabilir. Hiç kaydedilmemiş yerel değişiklikler için garanti yoktur.

Git çevrimdışı çalışır mı?

Evet. Geçmiş görüntüleme, branch ve commit gibi işlemlerin çoğu yerel depoda yapılır. Uzak depoyla veri alışverişi için bağlantı gerekir.

Sonuç

Git, değişiklikleri izlenebilir anlık görüntüler hâlinde kaydeden dağıtık sürüm kontrol sistemidir. Düzenli branch, küçük commit, kod inceleme ve güvenli uzak depo kullanımı; ekiplerin aynı proje üzerinde kontrollü ve geri alınabilir biçimde çalışmasını sağlar.

Bu İçeriği Paylaş
Yorum yapılmamış