반응형
모든 Git 기록에서 문자열을 검색 하시겠습니까? [복제]
이 질문에 이미 답변이 있습니다.
오픈 소스로 GitHub에 푸시하려는 코드 기반이 있습니다. 이 자식 제어 소스 트리에는 비밀번호가 포함 된 특정 구성 파일이 있습니다. 이 파일을 추적하지 않도록 확인했고 .gitignore
파일 에도 추가했습니다 . 그러나 나는 어떤 것이 커밋 사이에 끼어 들었을 때와 같은 민감한 정보가 밀려 나지 않을 것이라는 점을 절대적으로 긍정적으로 생각하고 싶습니다. 이 일을 할만큼 부주의 한 것 같지는 않지만 긍정적 이되고 싶습니다 .
모든 자식을 "grep"하는 방법이 있습니까? 이상하게 들리지만 "모두"란 존재했던 모든 파일의 모든 버전을 의미합니다. 모든 커밋에 대해 diff 파일을 덤프하는 명령이 있다면 작동할까요?
Git은 -S 옵션으로 diff를 검색 할 수 있습니다 ( 문서 에서는 pickaxe라고 함 ).
git log -Spassword
이것은 문자열을 추가하거나 제거한 커밋을 찾습니다 password
. 다음은 몇 가지 옵션입니다.
-p
: 차이를 표시합니다. 파일 (-p file
) 을 제공하면 패치가 생성됩니다.-G
:-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
반응형
'programing' 카테고리의 다른 글
파이썬의 목록에서 고유 한 값 얻기 (0) | 2020.09.30 |
---|---|
Java에서 두 목록을 어떻게 결합합니까? (0) | 2020.09.30 |
jar를 설치하지 않고 maven 2 빌드 클래스 경로에 추가 할 수 있습니까? (0) | 2020.09.30 |
Mac OS 파인더에서 여기에서 터미널 열기 (0) | 2020.09.30 |
단위 테스트, 통합 테스트, 연기 테스트, 회귀 테스트는 무엇입니까? (0) | 2020.09.30 |