Menu
Coddy logo textTech

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.

git reset --hard HEAD'i geri taşır ve sonrasındaki her şeyi - hazırlama alanı ve çalışma ağacı dahil - siler.

Sözdizimi

CommandWhat it does
git reset --hardCommit edilmemiş tüm değişiklikleri atar (HEAD üzerinde kalır)
git reset --hard HEAD~1Son commit'i ve değişikliklerini kaldırır
git reset --hard <hash>Dalı belirli bir commit'e geri zorlar
git reset --hard origin/mainYerel 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.

StepCommandResult
1git reflogHEAD'in nerelerde olduğunu, hash'leriyle listeler
2git reset --hard <hash>Reset'ten önceki commit'e geri döner

git reset --hard SSS

git reset --hard gerçekte ne yapar?
Mevcut dalınızı hedef commit'e taşır ve hem staging alanının hem de çalışma ağacınızın ona uyması için üzerine yazar. Commit edilmemiş her değişiklik - staging'de olsun ya da olmasın - atılır. Değişiklikleri staging'de tutan --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?
Çalışma ağacını son commit'e sıfırlamak ve commit edilmemiş düzenlemeleri silmek için hiçbir commit belirtmeden 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?
Commit edilmiş çalışma genellikle evet: reset'ten önce dalınızın işaret ettiği commit'i bulmak için 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?
Evet. 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.
Coddy programming languages illustration

Coddy ile Git öğren

BAŞLA