git을 사용하여 모든 분기에서 문자열을 어떻게 검색 할 수 있습니까?
git을 사용하여 모든 로컬 분기의 모든 파일 내에서 주어진 문자열을 어떻게 검색 할 수 있습니까?
Github 특정 : 모든 github 브랜치에서 위의 검색을 수행 할 수 있습니까? (원격 github 저장소에 여러 가지 원격 분기가있어 이상적 으로이 검색을 중단 할 필요가 없습니다 ..)
Git 리포지토리에서이 작업을 수행 할 수 있습니다.
git grep "string/regexp" $(git rev-list --all)
Github 고급 검색에는 코드 검색 기능이 있습니다.
코드 검색은 GitHub에 공개적으로 호스팅 된 모든 코드를 살펴 봅니다. 다음을 기준으로 필터링 할 수도 있습니다.
- 언어:
language:
- 저장소 이름 (사용자 이름 포함) :
repo:
- 파일 경로 :
path:
@manojlds git grep 명령을 사용하고 오류가 발생하는 경우 :
-bash: /usr/bin/git: Argument list too long"
그런 다음 xargs를 사용해야합니다.
git rev-list --all | xargs git grep "string/regexp"
또한 git history에서 커밋 된 코드를 grep (검색)하는 방법을 참조하십시오 .
대부분의 경우 git rev-list --all
스캔하는 데 시간이 오래 걸리는 수많은 커밋을 반환 할 수 있습니다. 저장소 히스토리의 모든 브랜치에서 모든 커밋을 검색하는 대신 모든 브랜치 팁을 검색하려는 경우로 대체 할 수 있습니다 git show-ref --heads
. 따라서 총계 :
git grep "string" `git show-ref --heads`
또는:
git show-ref --heads | xargs git grep "string"
팁 : 파일로 출력을 작성하여 편집기에서 볼 수 있습니다.
nano ~/history.txt
git show-ref --heads | xargs git grep "search string here" >> ~/history.txt
여기에 나열된 솔루션에는 거의 문제가 없습니다 (심지어 받아 들여짐).
- 중복을 얻을 때 모든 해시를 나열 할 필요는 없으며 시간이 더 걸립니다.
당신이 문자열을 검색 할 수 있습니다 곳이 기반으로 "test -f /"
여러 가지에 master
와 dev
등을
git grep "test -f /" master dev
어느
printf "master\ndev" | xargs git grep "test -f /"
여기로갑니다.
이것은 모든 로컬 브랜치의 팁에 대한 해시를 찾고 해당 커밋에서만 검색합니다.
git branch -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
원격 지점에서도 검색 해야하는 경우 다음을 추가하십시오 -a
.
git branch -a -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
최신 정보:
# search in local branches
git branch | cut -c3- | xargs git grep "string"
# search in remote branches
git branch -r | cut -c3- | xargs git grep "string"
# search in all (local and remote) branches
git branch -a | cut -c3- | cut -d' ' -f 1 | xargs git grep "string"
# search in branches, and tags
git show-ref | grep -v "refs/stash" | cut -d' ' -f2 | xargs git grep "string"
당신은 이것을 시도 할 수 있습니다
git log -Sxxxx #search all commits
git log -Sxxxx --branches[=<pattern>] #search branches
'Programing' 카테고리의 다른 글
프로그램 내에서 Java 앱을 종료하는 방법 (0) | 2020.06.19 |
---|---|
특정 MySQL 테이블이 차지하는 디스크 공간을 어떻게 확인할 수 있습니까? (0) | 2020.06.19 |
dicts 목록에서 값 목록 가져 오기 (0) | 2020.06.19 |
C #을 사용하여 두 DateTime 객체의 시간 차이를 어떻게 알 수 있습니까? (0) | 2020.06.19 |
뷰 홀더가있는 Android Recyclerview 및 ListView (0) | 2020.06.19 |