Sobes.tech
Junior — Middle

Git reset komutunun ne yaptığını ve hangi durumlarda kullanıldığını açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

git reset komutu, değişiklikleri geri almak ve mevcut dalın (HEAD) göstergesini başka bir commit'e taşımak için kullanılır. Parametrelere bağlı olarak, indeksin (hazırlık alanı) ve çalışma dizininin durumunu değiştirebilir.

Ana seçenekler:

  • git reset --soft <commit> — HEAD'i belirtilen commit'e taşır, değişiklikleri indeks ve çalışma dizisinde bırakır. Commitleri geri almak, ancak değişiklikleri tekrar commit için saklamak için kullanılır.

  • git reset --mixed <commit> (varsayılan) — HEAD'i taşır ve indeksi sıfırlar, ancak değişiklikler çalışma dizisinde kalır. Commitleri geri almak ve değişiklikleri indeksten kaldırmak için kullanılır.

  • git reset --hard <commit> — HEAD'i taşır, indeksi ve çalışma dizinini sıfırlar ve belirtilen commit sonrası tüm değişiklikleri tamamen siler.

Kullanım senaryoları:

  • Son commitleri geri almak.
  • Değişiklikleri indeksten kaldırmak.
  • Tam anlamıyla önceki duruma dönmek.

Örnek:

git reset --hard HEAD~1  # bir commit geri dönerek değişiklikleri siler