Điều này khiến tôi trở nên điên cuồng.Git: Tìm mã đã bị xóa
Làm cách nào để tìm mã đã bị xóa?
tôi đã kết thúc việc tìm kiếm nơi nó được tạo ra với điều này:
$ git log --pretty=oneline -S'some code'
Và đó là đủ tốt, nhưng tôi cũng rất tò mò muốn tìm nơi nó đã bị xóa, và cho đến nay, không có con xúc xắc.
Trước tiên, tôi đã thử git diff HEAD..HEAD^|grep 'some code'
, mở rộng phạm vi mỗi lần, cho đến khi tôi tìm thấy các dòng mà nó đã bị xóa. Tốt, vì vậy giả sử tôi tìm thấy nó trên phạm vi HEAD^^..HEAD^^^
, sau đó tôi làm git show HEAD^^^
và git show HEAD^^
với grep
, nhưng mã này không có nơi nào được tìm thấy!
Sau đó, tôi đọc lên một chút về git bisect
, và chắc chắn đủ, nó mang lại cho tôi một phiên bản duy nhất mà thủ phạm được cho là ... Một lần nữa, git show rev|grep 'some code'
đi lên trống rỗng ...
gì? Tôi đang làm gì sai?
Cảm ơn!
Bạn có nói rằng khi bạn làm điều cơ bản sau đây bạn không nhận được hit ?:
Nếu vậy, dường như không sensical .... nếu nó trong 'log', nó nên được hiển thị trong' show' ... đúng không? Hoặc có lẽ tôi hiểu nhầm câu hỏi. – metasimĐã một thời gian kể từ khi tôi ở trong tình huống này và nó đã không tự thể hiện lại, vì vậy tôi không thể kiểm tra lệnh của bạn. Cảm ơn anyway, nó có thể có ích cho ai đó. – Ivan
Bài đăng/nhận xét cũ ở đây, nhưng chính xác là những gì tôi cần. @SimeonFitch cú pháp của bạn hoạt động hoàn hảo cho tôi, để tìm và liệt kê các dòng mã thực tế đang được đề cập đến. Một bổ sung mà tôi thấy hữu ích là sử dụng tùy chọn '--context = n' grep để hiển thị đủ các dòng trước/sau để biết tên tệp là gì (cũng có các tùy chọn grep khác có thể trợ giúp điều này). Vì vậy, trong trường hợp của tôi lệnh thứ hai là: git hiển thị $ SHAHIT | grep --context = 30 'một số mã' –