반응형
모든 Git 기록에서 문자열 검색
오픈 소스로서 GitHub에 푸시하고 싶은 코드 베이스가 있습니다.이 Git 제어 소스 트리에는 패스워드를 포함한 특정 설정 파일이 있습니다.이 파일을 추적하지 않도록 주의해서.gitignore
다만, 중요한 정보는 공개되지 않는다는 것을 확실히 하고 싶습니다.아마도 그 사이에 뭔가 실수가 있었을지도 모릅니다.내가 부주의해서 이런 일을 한 것은 아닌지 의심스럽지만, 나는 긍정적이고 싶다.
모든 Git을 "grep"할 수 있는 방법이 있나요?이상하게 들리겠지만 '모두'란 존재했던 모든 파일의 모든 버전을 의미합니다.모든 커밋에 대해 diff 파일을 덤프하는 명령어가 있다면 그게 효과가 있을까요?
Git은 -S 옵션으로 diff를 검색할 수 있습니다(문서에서는 곡괭이라고 부릅니다).
git log -S password
그러면 문자열을 추가 또는 삭제한 모든 커밋이 검색됩니다.password
. 여기 몇 가지 옵션이 있습니다.
-p
: 차이를 표시합니다.파일을 제공하는 경우(-p file
패치를 생성합니다.-G
: 추가 또는 삭제된 행이 지정된 regexp와 일치하는 차이를 찾습니다.-S
이 명령어는 "문자열 인스턴스를 도입 또는 삭제하는 차이점을 나타냅니다."--all
: 모든 브랜치 및 태그를 검색합니다.또는 를 사용합니다.--branches[=<pattern>]
또는--tags[=<pattern>]
git rev-list --all | (
while read revision; do
git grep -F 'password' $revision
done
)
다음 명령어를 사용하여 지금까지 추적된 모든 파일 내의 문자열을 검색합니다.
git log --patch | less +/searching_string
또는
git rev-list --all | GIT_PAGER=cat xargs git grep 'search_string'
검색을 수행할 상위 디렉토리에서 실행해야 합니다.
언급URL : https://stackoverflow.com/questions/4468361/search-all-of-git-history-for-a-string
반응형
'source' 카테고리의 다른 글
YouTube나 Maps 등의 iPhone 앱에 http+domain 기반의 URL Scheme를 등록할 수 있습니까? (0) | 2023.04.22 |
---|---|
NSUser Defaults 클리어 (0) | 2023.04.22 |
Chrome이 자동 완성="off"를 무시합니다. (0) | 2023.04.22 |
C#일반목록T타입취득방법 (0) | 2023.04.17 |
stdout과 stderr을 모두 파일로 리디렉션하는 방법 (0) | 2023.04.17 |