Kayıp commit kurtarma
- Git kursu
- Orta seviye
- Ders 46/82
- 4 dk
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 a1b2c3dBuradaki 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
# Kayıp commit'i koru
# Kurtarma dalına geçÖrnek çözüm
# Kayıp commit'i koru
git branch kurtar a1b2c3d
# Kurtarma dalına geç
git switch kurtarBeklenen çı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
git branch kurtar ____
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 |