2012-06-13 3 views
1

사용 사례 :힘내 : 파일의 특정 섹션에 대한 변경 사항을 조회하는 방법이 있습니까?

나는 전혀 이해하지 못하는 코드를 발견합니다. 이 코드가 작성된 시간적 맥락과 코드의이 부분이 수행 한 모든 변경 사항을 찾고 싶습니다.

이 파일의 기록은 기본적으로 [34 줄부터 38까지 (예 :)로] 교차하는 히스토리의 부분 만 조회합니다.

이 명령은 git log -p <file> | grep <some snippet matching mysterious code>보다 유용하며 log -p 출력으로 돌아가 거기에서 diff의 컨텍스트를 확인합니다.

슬픈 점은 내가이라고 쓰여진 코드를 검토 할 때 종종 이런 종류의 기능이 필요하다는 것을 알게된다는 것입니다.

답변

1

git blame <path to file>은 컨텍스트가있는 커밋 목록을 제공합니다 (해당 파일의 해당 커밋 지점에서 수행 된 변경 사항). 가지고있는 모든 능력에 대해 git help blame을 읽으십시오.

그럼 당신은 차이

+0

흠을 볼 포인트 또는 git diff <commit> <commit> -- <path>을 커밋에 전체 파일을 볼 수 git show <commit>:<path>를 사용할 수 있습니다. 괜찮아. 이렇게하면 각 줄을 마지막으로 편집 한 시간을 찾는데 도움이되지만 필자가 찾고있는 곳으로 이어지지는 않습니다. 주위를 둘러 봐야하는 시간대를 좁히는 데 도움이되지만 사용하기 쉬운 뭔가를 원한다면 코드의 특정 부분이 변형 된 것을 알 수 있습니다. –

+0

관심있는 문자열에 대한 비난 결과를 grep 할 수 있습니다 (줄 번호 - 사례의 경우 - 코드가 기록을 통해 위아래로 이동할 수 있기 때문에 작동하지 않음) –

+0

@Steven Lu ... '비난' '(또는'diff') 내가 아는 유일한 방법입니다. –

관련 문제