Programing

Git : 삭제 된 코드 찾기

crosscheck 2020. 12. 9. 07:50
반응형

Git : 삭제 된 코드 찾기


이것은 나를 미치게 만든다.

삭제 된 코드는 어떻게 찾습니까?

나는 이것으로 생성 된 위치를 찾았습니다.

$ git log --pretty=oneline -S'some code'

그 정도면 충분하지만, 삭제 된 위치와 지금까지 주사위가없는 곳을 찾고 싶었습니다.

먼저 git diff HEAD..HEAD^|grep 'some code'제거 된 줄을 찾을 때까지 매번 범위를 확장하여 시도 했습니다. 좋아, 그래서 내가 그것을 range HEAD^^..HEAD^^^에서 찾았다 고 가정 하고 , git show HEAD^^^그리고를 git show HEAD^^사용 grep하지만 코드를 찾을 수 없습니다!

그런 다음 나는 조금 읽었고 git bisect, 그것은 범인이 있어야 할 단일 개정판을 제공합니다 ... 다시, git show rev|grep 'some code'비어 있습니다 ...

뭐야? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

감사!


흠, 나를 위해 작동합니다.

$ git init
/Users/pknotz/foo/.git/에 빈 Git 저장소가 초기화되었습니다.

$ echo "안녕하세요"> a

$ git add a

$ git commit -am "초기 커밋"
[마스터 (루트-커밋) 7e52a51] 초기 커밋
 1 개 파일 변경, 1 개 삽입 (+), 0 개 삭제 (-)
 생성 모드 100644 a

$ echo "세계">> a

$ git commit -am "더 구체적으로"
[master 080e9fe] 더 구체적으로
 1 개 파일 변경, 1 개 삽입 (+), 0 개 삭제 (-)

$ echo "안녕하세요"> a

$ git commit -am "덜 구체적"
[master 00f3fd0] 덜 구체적으로
 1 개 파일 변경, 0 개 삽입 (+), 1 개 삭제 (-)

$ 고양이 a
안녕하세요

$ git log -SWorld
커밋 00f3fd0134d0d54aafbb9d959666efc5fd492b4f
작성자 : Pat Notz <patnotz@gmail.com>
날짜 : 2009 년 10 월 6 일 화요일 17:20:48 -0600

    덜 구체적으로

커밋 080e9fe84ff89aab9d9d51fb5d8d59e8f663ee7f
작성자 : Pat Notz <patnotz@gmail.com>
날짜 : 2009 년 10 월 6 일 화요일 17:20:33 -0600

    더 구체적으로

아니면 이것이 의미하는 바가 아닙니까?


git log -S<string>작업을 수행하지만 더 복잡한 검색을 수행해야하는 경우을 사용할 수 있습니다 git log -G<regex>.

From the man:

-G<regex>

Look for differences whose patch text contains added/removed lines that match <regex>.

참고URL : https://stackoverflow.com/questions/1528513/git-find-deleted-code

반응형