Git 특정 파일의 변경 이력 찾기
특정 파일을 추가/삭제/변경한 이력을 찾아야하는 상황에서 PR 혹은 commit을 검색할 수 있는 방법을 알아보겠습니다.
명령어
some-script.js
파일을 삭제/추가/변경한 커밋을 찾고 싶다면…
git log --oneline --all -- "**/some-script.js"
해석
git log --oneline --all -- "**/filename.ext"
위 명령어에 대해서 각 옵션들의 의미를 파악해보겠습니다.
- –oneline:
- 이 옵션은 각 커밋을 한 줄에 표시합니다.
- 보통 커밋의 해시와 제목만을 표시하게 됩니다. 이를 통해 긴 로그 출력을 간략하게 보여주어 로그의 전체적인 흐름을 빠르게 파악할 수 있게 도와줍니다.
- –all:
- 모든 브랜치와 태그의 로그를 표시합니다.
- 기본적으로
git log
는 현재 체크아웃된 브랜치의 로그만 보여주지만,--all
옵션을 사용하면 저장소 내의 모든 브랜치와 태그의 커밋 로그를 볼 수 있습니다.
- – “**/filename.ext”:
- 패턴을 사용하여 특정 파일 또는 디렉토리의 변경 이력만을 조회합니다.
**/
부분은 어떤 디렉토리 경로에 있던지 상관없이 해당 파일명을 가진 파일의 이력을 조회하겠다는 의미입니다. 따라서 저장소 내에서filename.ext
라는 이름을 가진 파일의 변경 이력을 모두 조회할 수 있습니다.
결론적으로, 이 명령어는 저장소 내의 모든 브랜치와 태그에서 filename.ext
라는 이름을 가진 파일의 전체 변경 이력을 간결한 한 줄 표기로 보여주는 명령어입니다.