Git Reset --hard
Son güncelleme
git reset --hard dalınızı bir hedef commit'e taşır ve hem staging alanını hem de çalışma ağacınızı tam olarak ona uyacak şekilde zorlar - bu sırada commit edilmemiş her değişikliği atar. git reset komutunun en yıkıcı biçimidir, bu yüzden çalıştırmadan önce mevcut çalışmanıza ihtiyacınız olmadığından emin olun.
Yanlışlıkla bir commit'i mi attınız? Bir hard reset genellikle git reflog ile geri kurtarılabilir. Bunları terminal playground'da güvenle deneyin - tarayıcınızda gerçek bir shell.
Sözdizimi
| Command | What it does |
|---|---|
git reset --hard | Commit edilmemiş tüm değişiklikleri atar (HEAD üzerinde kalır) |
git reset --hard HEAD~1 | Son commit'i ve değişikliklerini kaldırır |
git reset --hard <hash> | Dalı belirli bir commit'e geri zorlar |
git reset --hard origin/main | Yerel dalı uzak sunucuyla tam olarak eşleştirir |
Bir hard reset'i geri kurtarma
Reset ile attığınız commit edilmiş çalışma genellikle hâlâ geri kurtarılabilir.
| Step | Command | Result |
|---|---|---|
| 1 | git reflog | HEAD'in nerelerde olduğunu, hash'leriyle listeler |
| 2 | git reset --hard <hash> | Reset'ten önceki commit'e geri döner |
git reset --hard SSS
git reset --hard gerçekte ne yapar?
--soft ve staging dışında tutan --mixed ile karşılaştırıldığında, --hard değişiklikleri tamamen atan tek moddur.Tüm yerel değişikliklerimi nasıl atarım?
git reset --hard çalıştırın. Reset'in dokunmadığı izlenmeyen dosyaları da temizlemek için ardından git clean -fd çalıştırın.Dalımı uzak sunucuyla eşleşecek şekilde nasıl sıfırlarım?
git fetch ve ardından git reset --hard origin/main çalıştırın (dalınızı yazın). Bu, yerel dalınızı uzak sunucuyla tam olarak eşleşmeye zorlar ve ondan sapan yerel commit'leri ve değişiklikleri atar - yerel dalınız bozulduğunda ve yalnızca uzak sunucunun sürümünü istediğinizde faydalıdır.Bir git reset --hard işlemini geri alabilir miyim?
git reflog çalıştırın, ardından ona dönmek için git reset --hard <hash> çalıştırın. Hiç commit edilmemiş (yalnızca çalışma ağacınızdaki) değişiklikler geri kurtarılamaz, bu yüzden --hard komutunu dikkatle kullanın.Bunu çevrimiçi olarak deneyebilir miyim?
git reset --hard komutunu 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 sıfırlamayı ve değişiklikleri geri almayı adım adım kapsar.