Git'te son commit'i geri almak sık ihtiyaç duyulan bir işlemdir. Ancak hangi yöntemi seçtiğin çok önemlidir, çünkü bazıları değişikliklerini silebilir. Duruma göre üç ana yol vardır.

1) Commit'i geri al ama değişiklikleri koru

Son commit'i geri alıp yaptığın değişiklikleri düzenleme alanında (staging) tutmak için:

git reset --soft HEAD~1

Bu, ‘commit'i çözer’ ama kodun aynen durur. Commit mesajını düzeltmek veya birkaç commit'i birleştirmek için idealdir.

2) Commit'i ve staging'i geri al, dosyaları koru

git reset --mixed HEAD~1

Değişiklikler dosyalarında kalır ama artık ‘eklenmemiş’ hâle döner. (Varsayılan davranıştır.)

3) Commit'i ve TÜM değişiklikleri sil

git reset --hard HEAD~1

Dikkat: Bu, son commit'teki değişiklikleri geri dönülmez biçimde siler. Emin değilsen kullanma.

4) Paylaşılmış commit için: revert

Commit'i başkalarıyla paylaştıysan (push ettiysen), geçmişi silmek yerine revert kullan. Bu, eski commit'i silmez; onu geri alan yeni bir commit oluşturur:

git revert HEAD

Hangisini seçmeliyim?

Henüz push etmediysen reset, push ettiysen revert güvenlidir. --hard'ı yalnızca değişiklikleri gerçekten atmak istediğinde kullan.