Git 커밋 기록에서 특정 문자열 검색

John Wachira 2024년2월15일
Git 커밋 기록에서 특정 문자열 검색

이 문서에서는 Git 기록에서 특정 문자열을 검색하는 데 사용하는 다양한 방법에 대해 설명합니다.

기록에서 커밋 메시지를 훑어보는 것이 항상 잘리는 것은 아닙니다. 특정 변수나 문자열의 영향을 받은 커밋을 알고 싶을 때가 있습니다.

git log 명령에 몇 가지 인수를 추가하여 문자열을 검색할 수 있으며 Git은 저장소 기록에서 문자열을 추가하거나 삭제하는 커밋을 제공합니다. 이 기능을 사용하면 특정 코드 조각에 대한 커밋 컨텍스트를 쉽게 이해할 수 있습니다.

Git 커밋 기록에서 특정 문자열 검색

첫 번째 시나리오에서는 커밋 메시지에 업데이트라는 단어가 있는 모든 커밋을 검색하려고 합니다. 어떻게 해야 할까요?

아래와 같이 git log 명령을 실행합니다.

$ git log --grep=Update

출력:

문자열에 대한 Git 기록 검색 - 출력 1

위의 출력에서 볼 수 있듯이 Git은 Update라는 단어가 포함된 커밋만 제공했습니다.

"php" 문자열이 파일에서 추가되거나 제거된 커밋을 검색하고 싶다고 가정해 보겠습니다. 어떻게 해야 할까요?

아래와 같이 -S 플래그와 함께 git log 명령을 실행할 수 있습니다.

$ git log -S "php"

출력:

문자열에 대한 Git 기록 검색 - 출력 2

이를 비교하기 위해 아래 명령을 실행합니다.

$ git log -S "php" -p | grep "php" -C5

문자열에 대한 커밋이 많은 경우 difftool을 사용하는 것이 가장 좋습니다. Git이 두툼한 출력을 제공하기 때문에 혼란스러울 수 있습니다.

또한 git log 명령을 -G 인수와 함께 사용하여 아래와 같이 추가되거나 제거된 줄이 "php"와 일치하는 차이점을 검색할 수 있습니다.

$ git log -G "php"

메모:

  1. -G는 정규식을 허용하고 -S는 문자열을 허용합니다.
  2. -S 인수는 -G가 diff에서 단어를 검색하는 동안 단어가 변경된 커밋을 찾습니다.

git log 명령에 인수를 추가하여 출력을 조작할 수 있습니다. 일반적인 시나리오를 사용하여 커밋 기록에서 문자열을 검색하는 방법에 대해 논의했습니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - Git Log