2010-07-15 28 views
12

Maalesef birçok dosyada oldukça büyük bir kod yığını kaybederek birkaç kez git reset --hard HEAD^ yaptım. Bu taahhütleri geri yüklemek için bir yol var mı yoksa bu durumda HEAD'in daha önce nereye gittiğini iletmek için bir yol var mı?restore - git HEAD^

cevap

17

Önceki HEAD öğesinin sha1'ini kurtarmak için reflog'u kullanın. Özellikle, reflog, your safety net makalesi özellikle sizin için uygun olacaktır. Bu makaleden Gönderen:

bu komutun en yaygın kullanımı sadece bir git reset yapılır ve HEAD geri birkaç hareketin hareket ettik olmasıdır. Ama oops, ikinci işlemde bıraktığın kodlara ihtiyacın var. Bok. Şimdi ne olacak? Eğer sha1 bulduktan sonra

, geri gitmek istiyorum gibi bir şey kullanmak işlemek: Eğer sadece bir kod işledikleri takdirde

git reset --hard 0a1b2c 
+0

Büyük kısmındaki "Sıra Spec" olarak adlandırılan! Bu iş mükemmel yaptı. – Lan

+3

Ayrıca, –

+0

reflo dosyasından uygun olanı bulmak için 'HEAD @ {n}' seçeneğine de sıfırlayabilirsiniz. Ayrıca, reflog'u 'git log-g' ile görüntüleyebilir, bu da' git reflog show'dan biraz daha fazla bağlam sağlayabilir. –

İlgili konular