Git'te commit geçmişini düzeltmek veya geri almak için iki temel komut vardır: git reset ve git revert.
git resetCommit geçmişini değiştirir ve ileri sarılmış commit’leri iptal eder. Dikkat: Geri alınamaz (özellikle public branchlerde).
git reset --soft <commit-id> # Sadece HEAD geri alınır, değişiklikler kalır
git reset --mixed <commit-id> # Staging alanı temizlenir
git reset --hard <commit-id> # Tüm değişiklikler silinir
git reset --hard HEAD~1
Son commit'i tamamen siler.
git revertGeçmişteki bir commit'in tersini yapan yeni bir commit oluşturur. Güvenlidir ve geçmişi silmez.
git revert <commit-id>
Özellikle paylaşılmış (remote) branchlerde önerilir.
| Özellik | git reset |
git revert |
|---|---|---|
| Geçmişi siler | ✅ Evet (--hard) |
❌ Hayır |
| Yeni commit oluşturur | ❌ Hayır | ✅ Evet |
| Güvenli midir? | ⚠️ Değil (public için) | ✅ Evet |
| Lokal mi çalışmalı? | ✅ Evet | ✅/❌ Ortamına göre |
git reflog ile reset sonrası geçmişi kurtarabilirsin.reset kullanma, revert tercih et.