IhsanErdem

Ihsan Erdem - blogGit: Hızlı ve Verimli Versiyon Kontrol

Title Image

Versiyon Kontrol Sistemi Nedir?

Versiyon kontrol sistemleri , bir proje üzerinde yapılan değişiklikleri izlemenizi ve bu değişiklikleri yönetmenizi sağlayan bir araçtır. Bu sistemler, projedeki dosyaların geçmişini saklar, değişikliklerin kim tarafından ve ne zaman yapıldığını kaydeder ve aynı projede birden fazla kişinin aynı anda çalışmasını kolaylaştırır.

Git: Hızlı ve Verimli Versiyon Kontrolü

Git, yazılım geliştirme süreçlerinin vazgeçilmez bir parçası haline gelmiş bir sürüm kontrol sistemi olarak karşımıza çıkar. Git, 2005 yılında Linux geliştiricileri Linux üzerinde çalışırken kullandıkları versiyon kontrol sistemiyle ilgili yaşadıkları lisans probleminden dolayı ortaya çıkan ihtiyaçtan dolayı Linux geliştiricileri tarafından geliştirilmiştir.

Git'in Temel Avantajları

  • Git, projelerinizin tüm sürüm geçmişini saklar, bu sayede herhangi bir hata durumunda önceki bir sürüme kolayca geri dönmenize olanak tanır.
  • Birden fazla geliştirici aynı proje ve branch üzerinde, birbirlerine müdahale etmeden çalışabilir.
  • Branch yapısı sayesinde, paralel geliştirme mümkündür.

Git Reposu (Repository) Nedir?

Git kullanan bir projede tüm dosyalar, kodlar ve loglar bir “repository” adı verilen alanda saklanır. Bu repository’ler yerel cihazınızda olabileceği gibi bulut platformlarında da depolanabilir. Bir projede ilk adım, genellikle git init komutu ile bir repository oluşturmaktır.

Commit: Yazılımda Önemli Bir Adım

Commit, üzerinde çalıştığınız dosyaların o anki anını kaydetmenizi sağlayan işlemdir. Bir nevi geri yükleme noktası olarak düşünülebilir. Yazılımda yapılan değişikliklerin olumsuz sonuçlar doğurması durumunda, commit’ler sayesinde en son düzgün çalışan versiyona hızlıca geri dönüş sağlanabilir. Commit işlemi için Git, bir commit mesajı yazmak zorunludur.

Branch (Dal) Nedir?

Branch'ler, projede paralel geliştirmeye imkan tanır. Bir projede farklı branch'ler üzerinde bağımsız geliştirmeler yapılabilir ve bu değişiklikler gerektiğinde ana branch ile birleştirilebilir.

git branch <branch-ismi> komutu ile yeni bir branch oluşturabilirsiniz.

Reset ve Revert Komutları

  • git reset: Projedeki commit’leri geriye almanızı sağlar. Ancak, commit’in sahne (stage) alanından ve dosya sisteminden nasıl etkileneceği kullanılan reset-mode’a bağlıdır (soft, mixed, hard).
  • git revert: Belirli bir commit’i geri almak ve bu işlemin commit geçmişine geçmesini sağlamak için kullanılır.

Merge ve Rebase

Bir branch üzerindeki değişiklikler tamamlandığında, bu değişikliklerin ana branch ile birleştirilmesi gerekir. git merge <branch-ismi> komutu ile bu işlem gerçekleştirilir. Ancak, merge yerine git rebase komutu da kullanılabilir. Rebase, değişiklikleri farklı bir şekilde ana branch’e ekler ve commit geçmişini daha düzenli tutmanıza yardımcı olur.

Git, bir projenin geliştirme süreçlerini daha organize ve geri alınabilir hale getirir. Özellikle takım halinde çalışırken büyük kolaylık sağlayan bu araç, yazılım dünyasında vazgeçilmezdir.

Merge Conflict: Çakışma Nedir?

Git kullanırken bir branch’i birleştirdiğinizde (merge) veya yeniden temel aldığınızda (rebase), aynı dosyada farklı değişiklikler yapılmış olabilir. Bu durumda bir çakışma (conflict) meydana gelir. Git, çakışmaları otomatik olarak çözmeye çalışır, ancak bazen manuel müdahale gerekebilir. Çakışmaları çözmek için şu adımlar izlenir:

  • git status ile çakışmaların hangi dosyalarda olduğunu görmek,
  • Çakışan dosyayı açıp, manuel olarak değişiklikleri birleştirmek,
  • Sorun çözüldükten sonra dosyayı commit’leyerek birleştirme işlemini tamamlamak.

Git, sürüm kontrol sistemleri arasında hızlı ve esnek yapısıyla öne çıkan bir araçtır. Doğru kullanıldığında, yazılım projelerinin yönetimini büyük ölçüde kolaylaştırır.