Git’teki Commitler Nasıl Birleştirilir?

Git, modern yazılım geliştirme süreçlerinde vazgeçilmez bir versiyon kontrol sistemi olarak karşımıza çıkar. Git’in güçlü özelliklerinden biri, commitleri birleştirme yeteneğidir. Commit birleştirme, dağınık commit geçmişlerini temizlemek, proje geçmişini düzenli tutmak veya hatalı commitleri düzeltmek için kullanılan oldukça faydalı bir yöntemdir. Bu makalede, Git’teki commitlerin nasıl birleştirileceğini adım adım ele alacağız.

Commit Birleştirme Nedir?

Commit birleştirme (squash), birden fazla commit’i tek bir commit altında birleştirme işlemidir. Bu işlem genellikle şu durumlarda tercih edilir:

  • Birden fazla küçük commit’i düzenli bir commit haline getirmek.
  • Hatalı commitleri düzeltmek veya temizlemek.
  • Proje geçmişini okunabilir ve anlaşılır hale getirmek.

Git’te commit birleştirme işlemi, rebase ve merge gibi araçlarla gerçekleştirilebilir. Şimdi bu işlemi nasıl yapacağınızı öğrenelim.

Git’te Commit Birleştirme Yöntemleri

1. git rebase Kullanarak Commit Birleştirme

Git’te en sık kullanılan commit birleştirme yöntemi git rebase komutudur. Aşağıdaki adımları takip ederek bu yöntemi kullanabilirsiniz:

Adım 1: Commit Geçmişini Görüntüleyin

İlk olarak, mevcut commit geçmişinizi kontrol edin. Bunu yapmak için aşağıdaki komutu kullanabilirsiniz:

git log --oneline

Bu komut, kısa bir commit geçmişi sunar. Örneğin:


abc123 Commit mesajı 3
def456 Commit mesajı 2
ghi789 Commit mesajı 1

Adım 2: git rebase -i Komutunu Çalıştırın

Birleştirmek istediğiniz commitlerin başlangıç noktasını belirleyerek aşağıdaki komutu çalıştırın:

git rebase -i HEAD~3

Bu örnekte, son 3 commit birleştirilecektir. Komutu çalıştırdığınızda bir metin düzenleyici açılır ve commitlerin bir listesi gösterilir:


pick abc123 Commit mesajı 3
pick def456 Commit mesajı 2
pick ghi789 Commit mesajı 1

Adım 3: Commitleri Birleştirmek İçin “Squash” Seçeneğini Kullanın

Birleştirmek istediğiniz commitlerin yanında “pick” yerine “squash” yazın:


pick abc123 Commit mesajı 3
squash def456 Commit mesajı 2
squash ghi789 Commit mesajı 1

Değişiklikleri kaydedip metin düzenleyiciyi kapattığınızda, Git sizden yeni bir commit mesajı oluşturmanızı isteyecektir.

Adım 4: Yeni Commit Mesajını Belirleyin

Birleştirilen commitler için tek bir mesaj yazabilirsiniz:


# Commit mesajlarını düzenleyin:
Yeni commit mesajı

Mesajı yazdıktan sonra kaydedip kapatın. Böylece commitler birleştirilmiş olur.

2. git merge Kullanarak Commit Birleştirme

git merge, farklı dallardaki değişiklikleri birleştirmek için kullanılır, ancak bazı senaryolarda commit birleştirme amacıyla da kullanılabilir. Özellikle --squash seçeneği ile tüm commitler tek bir commit altında toplanabilir.

Adım 1: Birleştirilecek Dalı Seçin

Birleştirmek istediğiniz dalı hedef dalınıza çekmek için aşağıdaki komutu kullanın:

git checkout hedef-dal

Adım 2: --squash Seçeneğini Kullanarak Birleştirin

Birleştirmek istediğiniz dalı squash seçeneğiyle birleştirin:

git merge --squash kaynak-dal

Bu işlem, kaynak dalın commitlerini hedef dalda tek bir commit haline getirir.

Adım 3: Yeni Commit’i Kaydedin

Yeni commit mesajını ekleyerek değişiklikleri kaydedin:

git commit -m "Birleştirilmiş commit mesajı"

Commit Birleştirme İşleminde Dikkat Edilmesi Gerekenler

Commit birleştirme işlemi sırasında aşağıdaki noktalara dikkat edilmelidir:

  • Paylaşılan Dallarda Dikkat: Commit birleştirme işlemi, paylaşılan dallarda sorunlara neden olabilir. Özellikle rebase kullanırken dikkatli olun.
  • Yedekleme: İşlemden önce değişikliklerinizi bir yedeğe alın veya bir dal oluşturarak işlemi o dal üzerinde gerçekleştirin.
  • Anlamlı Commit Mesajları: Birleştirme işlemi sonrası commit mesajını anlamlı ve açıklayıcı bir şekilde düzenleyin.

Sonuç

Git’teki commitleri birleştirmek, özellikle birden fazla küçük değişikliği tek bir commit altında toplamak istediğinizde oldukça kullanışlıdır. Bu makalede git rebase ve git merge komutlarını kullanarak commit birleştirme işlemini detaylı bir şekilde ele aldık. Doğru yöntemleri kullanarak proje geçmişinizi düzenli ve okunabilir hale getirebilirsiniz.

Unutmayın, commit geçmişi yazılım projenizin hikayesini anlatır. Bu yüzden düzenli bir geçmiş, ekip çalışmasını ve hata ayıklamayı kolaylaştırır.

Eğer Git üzerinde daha fazla bilgi edinmek istiyorsanız, resmi Git dokümantasyonuna göz atabilirsiniz.