개발관련/Git

모든 Git 기록에서 문자열을 검색 하는 방법

Rateye 2021. 10. 6. 10:52
728x90
반응형
질문 : 모든 Git 기록에서 문자열을 검색 하시겠습니까?

오픈 소스로 GitHub에 푸시하려는 코드 기반이 있습니다. 이 자식 제어 소스 트리에는 비밀번호가 포함 된 특정 구성 파일이 있습니다. 이 파일을 추적하지 않고 .gitignore 파일에도 추가했습니다. 그러나 나는 어떤 것이 커밋 사이에 끼어 들었을 때 민감한 정보가 밀려 나지 않을 것이라는 점을 절대적으로 긍정적으로 생각하고 싶습니다. 이 일을 할만큼 부주의 한 것 같지는 않지만 긍정적 이되고 싶습니다.

모든 자식을 "grep"하는 방법이 있습니까? 이상하게 들리지만 "모두"란 존재했던 모든 파일의 모든 버전을 의미합니다. 모든 커밋에 대해 diff 파일을 덤프하는 명령이 있다면 작동할까요?

답변

Git은 -S 옵션으로 diff를 검색 할 수 있습니다 ( 문서 에서는 pickaxe라고 함).

git log -S password

password 문자열을 추가하거나 제거한 커밋을 찾습니다. 다음은 몇 가지 옵션입니다.

  • -p : 차이를 표시합니다. 파일 ( -p file )을 제공하면 패치가 생성됩니다.
  • -G : "문자열의 인스턴스를 도입하거나 제거하는 차이점을 찾는" -S 와 반대로 추가되거나 제거 된 행이 주어진 정규 표현식과 일치하는 차이점을 찾습니다.
  • --all : 모든 분기와 태그를 검색합니다. 대안 적으로, 사용 --branches[=<pattern>] 또는 --tags[=<pattern>]
출처 : https://stackoverflow.com/questions/4468361/search-all-of-git-history-for-a-string
728x90
반응형