Rebase Ne Demek?
Yayın: · Son güncelleme:
Rebase Ne Demek? Kısaca
Rebase, Git'te bir daldaki commit'leri alıp başka bir dalın en ucuna yeniden uygulamaktır. Sonuçta geçmiş, birleştirme kayıtları olmadan tek ve düz bir çizgi gibi görünür.

Rebase ne demek?
Rebase, "tabanı değiştirmek" anlamına gelir. Dalınız ana daldan hangi noktada ayrıldıysa, rebase o başlangıç noktasını ana dalın son hâline taşır. Sizin commit'leriniz sanki en güncel kodun üzerine yeni yazılmış gibi yeniden oluşturulur.
Komut genelde özellik dalındayken git rebase main şeklinde çalıştırılır. Kısa ve basit. Asıl önemli olan, ne zaman kullanılacağını bilmektir.
Merge yönteminden farkı
İkisi de aynı amaca hizmet eder: başka daldaki değişiklikleri almak. Merge geçmişi olduğu gibi korur ve gerekirse ayrı bir birleştirme kaydı ekler. Rebase ise geçmişi yeniden yazar ve daha okunaklı, düz bir liste bırakır.
Örneğin üç gündür fatura-pdf dalında çalışıyorsunuz ve bu sürede ana dala on commit eklendi. Merge yaparsanız geçmişte iki hattın birleştiği bir düğüm oluşur. Rebase yaparsanız sizin üç commit'iniz o on commit'in arkasına dizilir.
Hangi durumda risk taşır?
Bu işlem commit'lerin kimliklerini değiştirir. Başkalarının da kullandığı, uzak depoya gönderilmiş bir dalda rebase yaparsanız ekip arkadaşlarınızın geçmişiyle uyuşmazlık çıkar. Genel kural şudur: yalnız kendi yerel dalınızda rebase yapın.
İşlem sırasında da çakışma çıkabilir ve her commit için ayrı ayrı çözmeniz gerekebilir. Takılırsanız git rebase --abort her şeyi başlangıç hâline döndürür.
Sıkça Sorulan Sorular
Rebase mi merge mi kullanmalıyım?
Paylaşılan dallarda merge daha güvenlidir. Kendi yerel dalınızı ana dalla güncellemek ve temiz bir geçmiş bırakmak için rebase tercih edilebilir. Çoğu ekip bu konuda kendi kuralını belirler.
Interactive rebase nedir?
git rebase -i ile açılan bir moddur. Commit'leri birleştirmenize, sırasını değiştirmenize ya da mesajlarını düzenlemenize izin verir. Pull request açmadan önce dağınık commit'leri toparlamak için kullanılır.