git log -g
ท่านสามารถเข้าดูห้อยกระทำด้วย
-g, --walk-reflogs
Instead of walking the commit ancestry chain, walk reflog entries from
the most recent one to older ones.
ดังนั้นคุณสามารถทำเช่นนี้เพื่อค้นหาสตริงเฉพาะในข้อความกระทำที่เป็นอันตราย:
git log -g --grep=search_for_this
อีกทางเลือกหนึ่งถ้าคุณต้องการค้นหาการเปลี่ยนแปลงของสตริงคุณสามารถใช้ตัวเลือกการค้นหา pickaxe "-S":
git log -g -Ssearch_for_this
# this also works but may be slower, it only shows text-added results
git grep search_for_this $(git log -g --pretty=format:%h)
Git 1.7.4 จะเพิ่มตัวเลือก -Gเพื่อให้คุณผ่าน -G <regexp> เพื่อค้นหาเมื่อมีการย้ายบรรทัดที่มี <regexp> ซึ่ง -S ไม่สามารถทำได้ -S จะบอกคุณเมื่อจำนวนบรรทัดทั้งหมดที่มีสตริงเปลี่ยนไป (เช่นการเพิ่ม / ลบสตริง)
ในที่สุดคุณสามารถใช้ gitk เพื่อให้เห็นภาพการผูกมัดด้วย:
gitk --all $(git log -g --pretty=format:%h)
จากนั้นใช้คุณลักษณะการค้นหาเพื่อค้นหาไฟล์ที่วางผิดตำแหน่ง งานทั้งหมดนี้สมมติว่าการคอมมิชชันที่หายไปไม่ได้ "หมดอายุ" และถูกเก็บขยะซึ่งอาจเกิดขึ้นหากมันห้อยอยู่เป็นเวลา 30 วันและคุณหมดอายุ reflogs หรือรันคำสั่งที่หมดอายุ