Herhangi bir commit'i düzenleyin
Yazım hatası üç hafta önceki bir commit'te. Alışıldık çözüm etkileşimli bir rebase'tir: commit'te dur, düzenle, devam et, dua et. Gitcito'nun çözümü ise şu: commit'e sağ tıklayın, Bu commit'i düzenle, metni değiştirin, bitti. Commit ayrıntıları panelindeki kalem düğmesi de aynı düzenleyiciyi açar.

Ne yapar
HEAD'in atası olan herhangi bir commit'i seçin — geçmiş doğrusal olsun ya da
olmasın. Pencere dosyalarını ve mesajını gösterir; ikisinden birini düzenleyin.
Oradan itibaren iki şey olur:
- Zincirleme önizleme, düzenlenen commit'in üzerindeki her commit'i
bellekte yeniden oynatır (
merge-treecherry-pick'lerinden oluşan bir zincir — checkout yok, çalışma ağacı yok, ref yok). Her ardıl yeşil ya da kırmızı görünür; böylece düzenlemenin temiz yayılıp yayılmadığını veya sonraki bir değişiklikle çarpışıp çarpışmadığını daha hiçbir şey kımıldamadan bilirsiniz. - Geçmişi yeniden yaz bunu gerçekten yapar: aynı zincir plumbing
komutlarıyla kurulur, ardından dal
reset --keepile taşınır — commit'lenmemiş değişiklikleriniz beraberinde taşınır ya da reset iptal edilir ve hiçbir şey olmamış olur. Önce bir koruma anlık görüntüsü alınır ve geri al eski zinciri geri getirir.
Yeniden oynatılan her commit'in yazarı ve tarihleri korunur; yalnızca hash'ler değişir — geçmişi yeniden yazmak zaten budur.
Aralıktaki merge'ler

Commit ile HEAD arasında bir merge olması artık düzenlemeyi devre dışı
bırakmaz. Zincir, bir merge'i kaydedilmiş sonucunu — merge'in gerçekten
commit'lediği ağacı, çakışma çözümleri dahil — yeniden yazılmış ebeveynin
üzerine uygulayarak yeniden oynatır; böylece birinin elle yaptığı çözümler
yeniden yazmayı harfi harfine atlatır. rerere yok, yeniden merge yok, çalışma
ağacı yok: zincirin geri kalanıyla aynı bellek içi plumbing komutları, üstelik
her iki ebeveyn işaretçisi de korunur. Düzenlenen commit'i kendisi de içeren
bir yan dal yeniden yazılır ve yeniden yönlendirilir; içermeyen dalın
kimliğine ise hiç dokunulmaz. Penceredeki şerit aralığın kaç merge taşıdığını
söyler ve merge adımları önizlemede bir merge simgesi gösterir.
Dürüst uyarı: yeniden oynatılan bir merge ancak kaydedilmiş sonucu kadar iyidir. Düzenlemeniz merge'in kendisinin çözdüğü satırlarla çarpışırsa, önizleme diğer her çakışan adım gibi kırmızıya döner — hiçbir şey tahmin edilmez.
Zincir çakıştığında
Sonraki bir commit, düzenlediğiniz satırlara dokunmuş. Önizleme o commit'i çakışan dosyalarla birlikte kırmızıyla işaretler ve yeniden yazma çalışmayı reddeder — hiçbir şey asla yarım uygulanmaz. Ya farklı düzenleyin ya da çakışmayı etkileşimli rebase ile göğüsleyin.
Sınırlar
- Commit,
HEAD'in atası olmalıdır. Merge edilmemiş bir yan daldaki commit'in, yeniden oynatılabileceği şu anki dalınıza giden bir yolu yoktur. - İkili dosyalar ve 2 MB'ın üzerindeki dosyalar gösterilir ama düzenlenemez.
- Zaten bir uzak depoda olan bir commit düzenlenebilir, ancak bir sonraki push'unuz bir force push olmak zorundadır — pencere buna karar vermeden önce sizi uyarır.
- Commit'te silinmiş dosyalar düzenlenemez (düzenlenecek içerik yoktur).
Ayrıca bkz.: Etkileşimli rebase · Kurtarma ve reflog · Absorb