Git
revert vs reset
revert'in geçmişi korurken reset'in sildiğini öğrenirsin.
Revert ile reset arasındaki fark
git reset, dal işaretçisini geriye çekerek belirtilen commit'ten sonraki kayıtları geçmişten tamamen siler. git revert ise hiçbir commit'i silmez; geçmişi olduğu gibi bırakıp en üste tersine çevirici yeni bir commit ekler. Bu fark özellikle ortak paylaşılan dallarda hayati önem taşır.
# Reset: gecmisi geriye ceker (gecmis silinir)
git reset --hard HEAD~1
# Revert: ileriye dogru yeni commit ekler (gecmis korunur)
git revert --no-edit HEAD
Reset yerel temizlikler için idealken, uzak sunucuya gönderilmiş kodlarda daima revert kullanılır.
Tarihçe bütünlüğü ve denetim izi
git revert kullanıldığında, hatanın ne zaman yapıldığı ve ne zaman düzeltildiği şeffaf bir denetim izi olarak korunur. git reset ise hatayı hiç yaşanmamış gibi yok eder; bu da hata ayıklama süreçlerinde ipuçlarının kaybolmasına yol açabilir. Ekip çalışmalarında üretim dalları için standart yöntem git revert'tir.
git log --oneline
# Revert "Hatali kod"
# Hatali kod
# Kararli surum
Tarihçenin şeffaf kalması, yazılımın gelişim sürecini denetlenebilir kılar.
Uygulama Revert sonrası commit sayısını doğrula
Son commit'i git revert --no-edit -q HEAD ile geri al ve toplam commit sayısını git rev-list --count HEAD ile ekrana bas.
Örnek çözümü göster
git init -q -b main
git config user.name "Cem"
git config user.email "cem@example.com"
echo "stabil" > sistem.txt
git add sistem.txt
git commit -qm "Stabil surum"
echo "hata" >> sistem.txt
git add sistem.txt
git commit -qm "Hatali commit"
git revert --no-edit -q HEAD
git rev-list --count HEAD
Kendini test et
-
Paylaşılan bir ana dalda hatalı bir commit geri alınmak istendiğinde neden git reset yerine git revert tercih edilmelidir?
- git revert komutu terminalde grafik arayüz açarak çakışmaları engeller
- git reset komutu yerel depoda her zaman hata verir ve çalışmaz
- git reset geçmişi silerek takım arkadaşlarının deposunu bozar, revert ise güvenle yeni commit ekler
- git reset komutu yalnızca boş commit'leri geri alabilir
Cevabı göster
git reset geçmişi silerek takım arkadaşlarının deposunu bozar, revert ise güvenle yeni commit ekler — Paylaşılan dallarda geçmişi silmek (reset) diğer geliştiricilerin geçmişini bozar; revert ise geçmişi silmeden ileriye dönük yeni commit ekler.
-
Geri alma işleminde commit yapmadan sahnele
git revert ____ HEAD
Cevabı göster
git revert -n HEAD
-
Revert ve reset özellikleri
- Revert yaklaşımı
- İleriye doğru yeni ters commit ekler
- git reset
- Dal işaretçisini geriye taşır
- Ortak dal kuralı
- Paylaşılan dalda revert kullanılır
- Denetim izi
- Hataları ve geri almaları belgeler
Sıradaki ders: Belirli commit geri