Rebase
- Git kursu
- İleri seviye
- Ders 53/56
- 6 dk
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~3Komut, 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
# Son üç commit'i düzenleÖrnek çözüm
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şiklikBeklenen çı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
# Son dört commit'i düzenleÖrnek çözüm
git rebase -i HEAD~4
# Düzenleme listesi:
pick a1b2c3d İlk commit
pick 7a8b9c0 Üçüncü commit
pick d4e5f6a İkinci commit
pick e1f2a3b Son commitBeklenen çı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
git rebase -i HEAD~4
# Düzenleme listesinde commit satırlarını yeniden sırala
# Kaydet ve kapat____
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 |