Menu
Coddy logo textTech

Git: Son commit'i geri alma

Son güncelleme

En son commit'i geri almak için, değişikliklerine ne olacağına karar verin. git reset --soft HEAD~1 ile onları staged tutun, düz bir git reset HEAD~1 ile staged olmadan tutun veya git reset --hard HEAD~1 ile atın. Commit yalnızca biraz hatalıysa, git commit --amend onu yerinde düzeltir. Zaten push edildiyse, geçmişi yeniden yazmak yerine git revert kullanın. Daha eski bir commit'i veya birkaçını birden geri almak için git commit geri alma sayfasına bakın.

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

Son commiti geri almak HEAD'i bir adım geri taşır - değişikliklerin hazır mı, hazırlıksız mı kalacağına ya da silineceğine mod karar verir.

Değişikliklerle ne yapacağınızı seçin

GoalCommand
Commit'i geri al, değişiklikleri staged tutgit reset --soft HEAD~1
Commit'i geri al, değişiklikleri staged olmadan tutgit reset HEAD~1
Commit'i geri al, değişiklikleri silgit reset --hard HEAD~1
Son commit'i düzelt (mesaj veya dosyalar)git commit --amend
Zaten push ettiğiniz bir commit'i geri algit revert HEAD

Uygulamalı örnek

Son commit'i geri alın ve daha iyi bir mesajla yeniden commit edin.

StepCommandResult
1git reset --soft HEAD~1Commit kaldırıldı, değişiklikler staged kalır
2git commit -m "clearer message"Aynı değişiklikleri yeniden commit edin

Git son commit'i geri alma SSS

Son commit'i nasıl geri alırım ama değişiklikleri korurum?
git reset --soft HEAD~1 çalıştırın. Bu, son commit'i kaldırır ancak değişikliklerini staged bırakır, böylece hemen yeniden commit edebilirsiniz. Değişikliklerin çalışma ağacınızda staged olmadan durması için git reset HEAD~1 (varsayılan mod) kullanın.
Son commit'i nasıl geri alır ve değişiklikleri silerim?
git reset --hard HEAD~1 çalıştırın. Bu, commit'i kaldırır ve değişikliklerini çalışma ağacınızdan atar. Yıkıcıdır: işe ihtiyaç duyabilirseniz, bunun yerine --soft kullanın veya daha sonra git reflog ile kurtarın.
Sadece commit mesajını düzeltmem gerekiyorsa ne olur?
git commit --amend kullanın. Son commit'i yeniden açar, böylece ayrı bir commit oluşturmadan mesajını düzenleyebilir (ve gerekirse dosyaları yeniden staged edebilirsiniz). Zaten push ettiğiniz bir commit'i amend etmekten kaçının, çünkü bu geçmişi yeniden yazar.
Push ettikten sonra son commit'i nasıl geri alırım?
git revert HEAD kullanın. Revert, sonuncuyu tersine çeviren yeni bir commit oluşturur ve geçmişi bozulmadan bırakır: paylaşılan dallar için güvenli seçim. Push edilmiş bir commit'i resetlemek, herkesi yeniden yazılmış bir dalı uzlaştırmaya zorlar.
Bunu çevrimiçi olarak deneyebilir miyim?
Evet. Bu komutları tarayıcınızda 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 kapsar.
Coddy programming languages illustration

Coddy ile Git öğren

BAŞLA