1. Üç alanı ayrı düşün
Git ile çalışırken çalışma ağacı, indeks ve commit geçmişi farklı katmanlardır. Editörde gördüğün dosya çalışma ağacındadır; sonraki commit için seçtiğin sürüm indekstedir; kaydedilmiş sürümler commit geçmişindedir. Bir komutun hangisini değiştirdiğini anlamadan çalıştırmak, henüz kaydedilmemiş emeği kaybetmene neden olabilir.
İlk adım git status --short ile hangi dosyanın hangi durumda olduğunu görmektir. Ardından git diff ve git diff --cached ile iki farkı ayrı incele. Bir dosyanın aynı anda hem staged hem de unstaged değişikliği olabilir; tek bir durum etiketiyle bütün içeriği varsayma.
2. Yalnızca stage seçimini geri al
Bir dosyayı yanlışlıkla stage ettiysen git restore --staged komutu indeks seçiminden çıkarabilir; çalışma dosyasındaki düzenlemeyi korur. Bu, kodu çöpe atmakla aynı işlem değildir. Sonraki status ve diff çıktısıyla neyin kaldığını doğrula.
Dosya yolunu açıkça ver. Geniş bir nokta kapsamı, görevle ilgisi olmayan dosyaları da etkileyebilir. Özellikle paylaşılan çalışma dizinlerinde önce mevcut değişikliklerin kime veya hangi işe ait olduğunu anlamak önemlidir.
git status --short
git diff --cached -- src/menu.js
git restore --staged -- src/menu.js
git diff -- src/menu.js3. Çalışma dosyasını geri almak kayıp yaratabilir
git restore -- dosya yolu, seçilen dosyanın çalışma ağacı sürümünü indeks sürümüne döndürür. Kaydedilmemiş değişiklikler bu işlemle silinebilir. Git'in bu düzenlemeleri otomatik olarak geçmişte tutacağına güvenme. Geri dönüş gerekiyorsa önce ayrı bir kopya veya uygun bir commit oluştur.
Bir hata düzeltirken bütün dizini geri almak yerine farkın ilgili bölümünü ele almak daha güvenlidir. İnteraktif yama seçimi bir seçenek olabilir; ancak her parçada hangi değişikliği kaldırdığını okuyarak ilerle. Hızlı komut, hızlı doğrulama ihtiyacını ortadan kaldırmaz.
4. Commit geri alma başka bir karardır
Paylaşılmış bir commitin etkisini geri almak istediğinde restore ile dosya düzenlemek, yeni bir revert commit oluşturmak veya geçmişi yeniden yazmak farklı sonuçlar üretir. Ortak dallarda git revert çoğu durumda geçmişi koruyan bir yaklaşım sağlar; yine de çatışmaları ve bağlı değişiklikleri incelemek gerekir.
reset veya zorla push gibi daha geniş etkili işlemleri bir restore örneğinin doğal devamı gibi sunma. Takım iş akışını ve uzak dalın durumunu bilmeden geçmiş değişikliğine geçmek, başkalarının çalışmasını etkileyebilir. İstediğin sonuç bir dosyanın içeriği mi, bir commitin etkisi mi, önce bunu netleştir.
5. Komuttan sonra farkı yeniden oku
Geri alma işlemi bittiğinde status ile dosya durumunu, diff ile gerçek içeriği kontrol et. Gerekliyse uygulamanın ilgili akışını yeniden çalıştır. Bir dosyanın temiz görünmesi, istenen davranışın döndüğünü tek başına kanıtlamaz.
Bu rehberin örnekleri tek dosya için sınırlı işlemlerdir. Üretim sunucusunda, müşteriye ait dizinde veya büyük bir refaktörün ortasında çalışıyorsan önce yedek ve mevcut değişikliklerin kapsamını belirle. Komutun kısa olması etkisinin küçük olduğu anlamına gelmez.
Kaynaklar ve kontrol notu
Bu rehber yapay zekâ desteğiyle hazırlanmış özgün bir editoryal içeriktir. Kaynak kontrolü: 30 Eylül 2026. Örnekleri kendi proje koşullarına uyarlayarak doğrula.
Bir hata fark ettiysen editörlüğe bildir; düzeltmeleri güncelleme tarihiyle işleriz.


