2011-04-19 20 views
12
Bunu yapmanın daha kolay bir yolu var sanmıyorum

değişti zaman dışarı bulma, ama ben emin olmak için sormak düşündüm.kod Git

I (bana göre) önemli bir hat silindi bazı kodlar var. Bu satırı yanlışlıkla sildiğim şeyi öğrenmek istedim. Bunu yapmak için bulabildiğim tek yol, çizginin değiştiği yeri bulana kadar, daha sonraki işlemlerde git "diff'ing" i başlatmaktı.

değiştirildi kod belirli bir bölümünü işlemek ne öğrenmek için daha kolay bir yolu var mı? Yalnızca değiştirilmiş veya bir çizgi eklediyseniz

cevap

24

elbette git blame kullanabilirsiniz. Eğer çizgiyi sadece tamamen kaldırırsanız, tabii ki, size yardımcı olmaz.

En azından silinen satırdaki metnin bir kısmını biliyorsanız, aradığınız taahhütleri sınırlamak için "kazma" seçeneğini git log kullanabilirsiniz.

E.g.

git log -S"important phrase" -p -- <file> 
5

git log -p arama veya ilerlemek olabilir, fark dosyaları ile size tam bir günlüğünü verecektir.

git bisect aranması için size aracı desteği verecektir. Satırı olan bir yere kadar başlayın, satır mevcut olduğunda git bisect good ve olmadığı zaman git bisect bad olduğunu söyleyin. Sonunda, Git silindiği yere bağlılık yapacak.

+0

Ben kenarortay eksik veya hatalı kod – cmcginty

+0

noktasını bulmak için en iyi cevaptır kullanıcı doğrusal tarama veya manuel ikili arama yapmak zorunda kalmaması olduğunu kenarortay, ikili arama yapar olduğunu düşünüyorum. – Novelocrat