Bu sorunu nasıl çözüyorum? git fsck
kullanın ve giriş yapın!
Önce kayıp (ulaşılamaz) işlem ve lekeleri içeren bir dosya oluşturun. (NOT: git gc
gibi bir şey yaptıysanız, çöplerin hepsini toplayacak ve onları burada bulamazsınız!Size buna benzer bir dosya verir)
$git fsck --lost-found > lost_found.commits
:
taahhüt sarkan dec2c5e72a81ef06963397a49c4b068540fc0dc3
sarkan damla f8c2579e6cbfe022f08345fa7553feb08d60a975
sarkan damla 0eb3e86dc112332ceadf9bc826c49bd371acc194
sarkan damla 11cbd8eba79e01f4fd7f496b1750953146a09502
sarkan taahhüt 18733e44097d2c7a800650cea442febc5344f9b3
sarkan damla 1e53a5cdb3ecdde27081ec6e8b31e4070106ee05
Daha sonra oradan işlemek/blog karmaları kopyalamak için favori metin editörü sizinle bu dosyayı açabilirsiniz.
Artık geri Bundan log git log --oneline <commit hash>
gibi bir şeyle tahsis edebilirler (* öksürük * vim makrolar * öksürük * bu iş için harika çalışır). Alternatif olarak, gitk, tig veya herhangi bir diğer görüntüleyici çalışmalıdır. Senin durumunda
Eğer günlük size böyle bir şey gösterecektir F taahhüt için karma bulursanız,
A---B---E---F
Hızlı ve kolay! Artık tüm bu sallanan taahhütlerin arkasındaki içeriği bulabilirsiniz.
P.S. Evet, biliyorum, geç yazı, ama ah, birileri onu burada bulabilir ve yararlı bulabilir.
+1: Kasıtlı olarak "commit --amend" veya "rebase" ile yetim kalan ve yanlışlıkla yetim kalan bir KAFAD ile çalışarak bir kimsenin ödediği bir taahhüt arasında hiçbir fark yoktur. – Cascabel
gerçekten. Muhtemelen bu durumdan kurtulmanın en kolay yolu, HEAD'in kendisinin refloguna bakmak olacaktır. – araqnid
Teşekkürler, bu yardımcı olur. Flippant'ın cevabı bile :) +1 – Amadan