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
반응형
'개발관련 > Git' 카테고리의 다른 글
수정 된 커밋을 원격 Git 저장소에 푸시하는 방법 (0) | 2021.10.07 |
---|---|
커밋하기 전에 'git add'를 실행 취소하는 방법 (0) | 2021.10.06 |
“git reset”과“git checkout”의 차이점 (0) | 2021.10.05 |
Git 원격 분기가 삭제되었지만 여전히 'branch -a'에 나타납니다. (0) | 2021.10.05 |
Git은 푸시 할 때마다 사용자 이름을 물어보지 않도록 하는 방법 (0) | 2021.10.05 |