Git depom bir şekilde riskli gitti - bu sabah msysgit'i yükledim ve mevcut dizinden sonra gösterilen şube adı yerine "((ref: re ...))" yazıyor, 'git durumu' her şeyi bir yeni dosya, 'git log' ve 'git reflog' bana "ölümcül: hatalı varsayılan revizyon" HEAD "ve benzerlerini söyler.
'Git reflog --all' veya 'gitk --all' yapmak bana deponun geri kalanının sağlam olduğunu gösteriyor, ancak üzerinde çalıştığım dal kayboldu, bu da HEAD'in neden var olmadığını açıklıyor / herhangi bir şeye işaret et.
Git'in her türlü bilgiyi elinde tuttuğunu biliyorum ve taahhütlerimin bir şekilde öksüz kaldığını varsayıyorum, bu yüzden HEAD'i onlara sıfırlayabilmem için bana bu taahhütleri gösterecek bir komut var mı?
DÜZENLEME: Ah canım. "Git fsck" yi keşfettim ve "git fsck --full" "ölümcül: nesne 03ca4 ... bozuk" raporunu veriyor. Bu konuda ne yapabilirim?
DÜZENLEME: Oh canım, oh canım. Başka bir şubeyi kontrol ettim, ardından 'git checkout -b lostbranchname' kullanarak orijinal dalı yeniden oluşturmayı denedim ve git "hata: referans refs / head / lostbranchname çözümlenemiyor: Hata yok, önemli: Başarısız oldu güncelleme için referansı kilitlemek için: Hata yok ". "Hata yok", özellikle çirkin bir hata olmalıdır. Öyleyse hala ortalıkta dolaşıyor gibi görünüyor, ancak kullanılamıyor ve öldürülemiyor.
DÜZENLEME: Süper kandırılan oh canım. Burada önerildiği gibi birçok şeyi paketten çıkarıp yeniden paketledim ve değiştirdim: Sabit disk arızasından zarar gören Git nesneleri nasıl kurtarılır? , ama şimdi 'git durumu' kadar zararsız bir şey için bozuk olarak rapor edilen başka bir hash alıyorum. Sanırım her şey ıslandı. Git çok güzel, ama bu tür şeylerle uğraşmak zorunda kalmamalıyım.
git checkout -b lostbranchname- sadece dalın adını (içeriğini değil) önemsiyorsanız, el ile silebilirsiniz (veya yeniden adlandırabilirsiniz).git/refs/heads/lostbranchname- bu, umarız işe yarar.