Menu
Coddy logo textTech

Git Rebase

Son güncelleme

git rebase dalınızın commit'lerini başka bir dalın üzerine yeniden oynatacak şekilde taşır ve bir merge commit'i yerine düz, doğrusal bir geçmiş üretir. İnteraktif rebase (-i) daha ileri gider ve commit'leri birleştirmenize, yeniden sıralamanıza, düzenlemenize veya çıkarmanıza olanak tanır. Rebase commit'leri yeniden yazdığı için, bunu yalnızca henüz paylaşmadığınız çalışmalarda yapın.

Bunları terminal playground'da deneyin: tarayıcınızda gerçek bir kabuk, kurulacak hiçbir şey yok.

Söz dizimi

CommandWhat it does
git rebase mainCommit'lerinizi main üzerine yeniden oynatır
git rebase -i HEAD~3Son 3 commit'i interaktif olarak düzenler
git rebase --onto main old newBir commit aralığını main üzerine taşır
git rebase --continueÇakışmaları çözdükten sonra devam eder
git rebase --abortRebase'i iptal eder, dalı geri yükler
git pull --rebaseMerge yerine pull ve rebase yapar

İnteraktif rebase anahtar kelimeleri

-i ile açılan düzenleyicide pick yerine bunlardan birini yazın.

KeywordWhat it does
pickCommit'i olduğu gibi tutar
rewordCommit'i tutar, mesajını düzenler
squashÖnceki commit'e katar, mesajları birleştirir
fixupKatar ama bu mesajı atar
dropCommit'i tamamen kaldırır

git rebase SSS

git rebase ne yapar?
Mevcut dalınızdaki commit'leri alır ve sanki çalışmanıza o dalın en son commit'inden başlamışsınız gibi birer birer başka bir dalın üzerine yeniden oynatır. Sonuç, merge commit'i olmayan doğrusal bir geçmiştir. Commit'ler bu süreçte yeniden yazılır (yeni hash'ler alırlar).
İnteraktif rebase nedir?
git rebase -i <base>, <base>'ten bu yana olan commit'leri listeleyen bir düzenleyici açar; burada onları yeniden sıralayabilir, birkaçını tek bir commit'e squash edebilir, mesajları reword edebilir, bir commit'i edit edebilir veya drop ile atabilirsiniz. Dağınık bir commit serisini paylaşmadan önce temizlemenin başlıca aracıdır.
Rebase'in altın kuralı nedir?
Başkalarının üzerine çalışma temellendirdiği commit'leri, yani genellikle paylaşılan bir dala push edilmiş her şeyi asla rebase etmeyin. Rebase commit'leri yeniden yazdığı için, bunu yapmak herkesi ayrışmış bir geçmişi uzlaştırmaya zorlar. Yerel, push edilmemiş commit'lerde serbestçe rebase yapın; herkese açık olanlar için merge veya revert kullanın.
Çakışmalı bir rebase'i nasıl düzeltir veya iptal ederim?
Bir rebase bir çakışmada durduğunda, dosyaları çözün, onlara git add yapın, ardından git rebase --continue çalıştırın. Mevcut commit'i atmak için git rebase --skip, tamamen iptal edip dalı rebase başlamadan önceki haline döndürmek için git rebase --abort kullanın.
Bunu çevrimiçi olarak deneyebilir miyim?
Evet. git rebase'i tarayıcınızdaki gerçek bir kabukta çalıştırmak için terminal playground'u açın, kurulacak hiçbir şey yok. Coddy'nin ücretsiz interaktif Git kursu da rebasing'i adım adım ele alır.
Coddy programming languages illustration

Coddy ile Git öğren

BAŞLA