CodeBlanks Logo Icon CodeBlanks

Kayıp commit kurtarma

reflog ile silinmiş commit'i kurtarmayı öğrenirsin.

Kayıp commit nasıl kurtarılır?

git reset --hard sonrasında bir commit normal dal geçmişinden kaybolmuş gibi görünebilir. Ancak commit reflog kayıtlarında hâlâ bulunuyorsa commit kimliğini kullanarak ona yeniden ulaşabilirsin. Önce git reflog ile kaydı bul, ardından commit'i incele.

git reflog

git show a1b2c3d

Buradaki a1b2c3d örnek commit kimliğidir; kendi reflog çıktındaki kimliği kullanmalısın.

Commit'i yeniden erişilebilir yap

Bulduğun commit'i yeniden erişilebilir yapmak için o commit üzerinde yeni bir dal oluşturabilirsin. git branch kurtar a1b2c3d komutu, mevcut konumu değiştirmeden belirtilen commit'i işaret eden kurtar dalını oluşturur. Böylece commit artık bir dal referansıyla korunur.

git branch kurtar a1b2c3d
git switch kurtar

Önce commit'i bir dal ile korumak, kurtarma sırasında mevcut çalışmanı yanlışlıkla kaybetme riskini azaltır.

Uygulama Kayıp commit'i kurtar

Örnekte kayıp commit kimliği a1b2c3d olarak verilmiştir. Önce bu commit'i kurtar adlı yeni dala bağla, ardından bu dala geç. İki komutu da doğru sırayla yaz.

Başlangıç kodu

terminal
# Kayıp commit'i koru

# Kurtarma dalına geç

Örnek çözüm

terminal
# Kayıp commit'i koru
git branch kurtar a1b2c3d

# Kurtarma dalına geç
git switch kurtar

Beklenen çıktı

Switched to branch 'kurtar'

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Reset sonrasında kaybolan commit nasıl bulunur?

  • .gitignore dosyasını silerek
  • git config --global çalıştırarak
  • git reflog çıktısını inceleyerek Doğru cevap
  • git remote remove çalıştırarak

Açıklama: Reflog, reset öncesindeki HEAD konumlarını gösterebilir. Böylece kaybolduğu düşünülen commit'in kimliğine ulaşabilirsin.

2 Commit'i kurtarma dalına bağla

Soru
git branch kurtar ____
Cevap
git branch kurtar a1b2c3d

Açıklama: Dal oluştururken kayıp commit'in kimliğini kullanırsın. Böylece commit bir dal tarafından referans edilir.

3 Kurtarma işleminin parçaları

Kavram Anlamı
git reset --hard Çalışma ağacını geri alır
git reflog Eski konumları bulur
git show Commit içeriğini inceler
git branch kurtar Commit'i bir dala bağlar

Orta seviye bölümündeki tüm dersler

20 Orta seviye finali

  1. Dal yönetimi
  2. Rebase
  3. Çatışma
  4. PR akışı