CodeBlanks Logo Icon CodeBlanks

Rebase

interaktif rebase ile commit'leri squash edip yeniden sıralarsın.

İnteraktif rebase

İnteraktif rebase, bir dalın commit geçmişini yeniden düzenlemek için kullanılır. git rebase -i komutuyla commit'leri listeleyebilir, birleştirebilir veya sıralarını değiştirebilirsin. Bu işlem özellikle henüz paylaşılmamış commit geçmişini düzenlemek için kullanışlıdır.

git rebase -i HEAD~3

Komut, son üç commit üzerinde işlem yapabileceğin bir düzenleme listesi açar.

Uygulama Commit'leri birleştir

Son üç commit üzerinde interaktif rebase başlat. Düzenleme listesinde ilk commit'i pick olarak bırak ve sonraki iki commit'i squash olarak değiştir. Böylece üç commit tek bir commit haline gelir.

Başlangıç kodu

terminal
# Son üç commit'i düzenle

Örnek çözüm

terminal
git rebase -i HEAD~3
# Düzenleme listesi:
pick a1b2c3d İlk değişiklik
squash d4e5f6a İkinci değişiklik
squash 7a8b9c0 Üçüncü değişiklik

Beklenen çıktı

Üç commit tek commit olarak birleştirildi.

Uygulama Commit geçmişini yeniden sırala

Son dört commit için interaktif rebase başlat. Düzenleme listesinde commit'leri şu sıraya getir: önce a1b2c3d, ardından 7a8b9c0, sonra d4e5f6a ve son olarak e1f2a3b. Her satırdaki işlem pick olarak kalmalıdır.

Başlangıç kodu

terminal
# Son dört commit'i düzenle

Örnek çözüm

terminal
git rebase -i HEAD~4
# Düzenleme listesi:
pick a1b2c3d İlk commit
pick 7a8b9c0 Üçüncü commit
pick d4e5f6a İkinci commit
pick e1f2a3b Son commit

Beklenen çıktı

Commit sırası yeniden düzenlendi.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İnteraktif rebase sırasında bir commit'i önceki commit ile birleştirmek için hangi işlem kullanılır?

  • edit
  • squash Doğru cevap
  • reword
  • drop

Açıklama: <code>squash</code>, seçilen commit'in değişikliklerini önceki commit ile birleştirir.

2 Commit sırasını değiştir

Soru
git rebase -i HEAD~4
# Düzenleme listesinde commit satırlarını yeniden sırala
# Kaydet ve kapat____
Cevap
git rebase -i HEAD~4
# Düzenleme listesinde commit satırlarını yeniden sırala
# Kaydet ve kapatyeniden sırala

Açıklama: İnteraktif rebase listesinde commit satırlarını yeniden sıralamak, geçmişteki commit sırasını değiştirir.

3 İnteraktif rebase işlemleri

Kavram Anlamı
pick Commit'i olduğu gibi uygular
squash Commit'leri birleştirir
reword Commit mesajını değiştirir
drop Commit'i geçmişten çıkarır

İleri seviye bölümündeki tüm dersler