Menu
Coddy logo textTech

Git Revert

Son güncelleme

git revert, değişikliklerinin tersini uygulayan yeni bir commit oluşturarak bir commit'i geri alır. Geçmişi yeniden yazmak yerine geçmişe ekleme yaptığı için, revert zaten push edilmiş bir commit'i geri almanın güvenli yoludur - git reset'in aksine, herkesi yeniden yazılmış bir dalı uzlaştırmaya zorlamaz.

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

git revert hatalı commiti yerinde bırakır ve tersini uygulayan yeni bir commit ekler - geçmiş asla yeniden yazılmaz.

Söz dizimi

CommandWhat it does
git revert HEADEn son commit'i geri alır
git revert <hash>Belirli bir commit'i hash ile geri alır
git revert HEAD~2..HEADBir commit aralığını geri alır
git revert -n <hash>Geri alır ama henüz commit yapmaz (yalnızca hazırlar)
git revert -m 1 <merge-hash>Bir merge commit'ini, 1. ebeveyni koruyarak geri alır

Revert sırasında

Revert bir çakışmaya rastlarsa, onu çözün ve devam edin.

CommandWhat it does
git revert --continueÇakışmaları çözdükten sonra devam eder
git revert --abortDevam eden revert'i iptal eder
git revert --skipMevcut commit'i atlar ve devam eder

revert vs reset

Behaviorgit revertgit reset
Geçmişi yeniden yazarHayırEvet
Push edilmiş commit'lerde güvenliEvetHayır
Yeni bir commit oluştururEvetHayır
Ortadaki bir commit'i geri alırEvetZahmetli

git revert SSS

git revert ile git reset arasındaki fark nedir?
git revert, daha önceki bir commit'in değişikliklerini geri alan yeni bir commit ekler ve geçmişi olduğu gibi bırakır - zaten push ettiğiniz commit'ler için güvenlidir. git reset, dal işaretçinizi geriye taşır ve geçmişi yeniden yazar; bu, yerel commit'ler için sorun değildir ama paylaşılan dallarda tehlikelidir. Genel commit'leri geri almak için revert'i, yerel olanları geri almak için reset'i kullanın.
Zaten push edilmiş bir commit'i nasıl geri alırım?
git revert <hash> (veya en sonuncusu için git revert HEAD) komutunu çalıştırın, ardından yeni revert commit'ini push edin. Revert geçmişi yeniden yazmadığı için, paylaşılan bir commit'i geri almanın doğru yolu budur - force-push yok ve onu zaten çekmiş olan ekip arkadaşları için hiçbir aksaklık yok.
Bir merge commit'ini nasıl geri alırım?
Bir merge commit'inin iki ebeveyni vardır, bu yüzden Git'in hangi geçmiş çizgisini koruyacağını bilmesi gerekir. git revert -m 1 <merge-hash> komutunu kullanın; burada -m 1, Git'e ilk ebeveyni (genellikle merge yaptığınız dal) korumasını söyler. Bir merge'ü geri almak, birleştirilmiş değişiklikleri geri alır ama merge'ü geçmişte tutar.
Birden fazla commit'i aynı anda geri alabilir miyim?
Evet. Son iki commit'i geri almak için git revert HEAD~2..HEAD gibi bir aralık geçirin ya da birkaç hash'i sıralayın. Git varsayılan olarak geri alınan her commit için bir revert commit'i oluşturur; tüm geri almaları commit yapmadan hazırlamak için -n ekleyin, ardından tek bir commit'i kendiniz oluşturun.
Bunu çevrimiçi olarak deneyebilir miyim?
Evet. git revert'i tarayıcınızdaki gerçek bir shell'de çalıştırmak için terminal playground'ı açın - kurulacak hiçbir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu da değişiklikleri geri almayı adım adım ele alır.
Coddy programming languages illustration

Coddy ile Git öğren

BAŞLA