내 컴퓨터의 모든 git 저장소를 어떻게 볼 수 있습니까?
내 컴퓨터에있는 모든 git 저장소를 볼 수있는 방법이 있습니까? 그것에 대한 명령이 있습니까?
당신이 리눅스에 있다면 find / -name ".git"
, 그렇지 않으면 방법이 없습니다. 그들은 표준 디렉토리입니다. OS 파일 / 폴더 찾기 프로그램을 사용하여 .git
명명 된 폴더 를 찾으십시오 .
원래 답변 : 이것은 Windows Powershell에서 매우 잘 작동합니다.
Get-ChildItem . -Attributes Directory+Hidden -ErrorAction SilentlyContinue -Include ".git" -Recurse
편집 # 1 : -Filter는 -Include 보다 두 배 빠릅니다 . 그 해결책은 다음과 같습니다.
Get-ChildItem . -Attributes Directory+Hidden -ErrorAction SilentlyContinue -Filter ".git" -Recurse
편집 # 2 : Keith E. Truesdell 이 출력을 파일로 보내는 것을 언급했습니다. 해당 솔루션에 대한 그의 의견을 참조하십시오. 콘솔 출력을 선호합니다. 그러나 그의 의견은 내가 기본적으로 반환되는 전체 경로가 아닌 전체 경로를 선호한다고 생각하게했습니다. 전체 경로 만 원하면 다음을 사용하십시오.
Get-ChildItem . -Attributes Directory+Hidden -ErrorAction SilentlyContinue -Filter ".git" -Recurse | % { Write-Host $_.FullName }
최종 참고 : 위의 솔루션 은 현재 디렉토리 아래의 Git 저장소 만 반환합니다 . 드라이브의 모든 저장소를 원하면 각 드라이브의 루트에서 명령을 한 번 실행해야합니다.
* nix에서는 모든 --bare
리포지토리 도 찾습니다 .
find / -name "*.git" -type d
Git 저장소는 모든이 HEAD
, refs
, objects
및 config
항목.
GNU / anything에서
find -name HEAD -execdir test -e refs -a -e objects -a -e config \; -printf %h\\n
확인하는 것만으로도 .git
많은 베어 리포지토리와 모든 하위 모듈이 누락됩니다.
Linux에서 더 빠른 방법은 다음과 같습니다.
locate -r "\.git$"
로 케이트의 데이터베이스를 계속 업데이트한다고 가정합니다. sudo updatedb
Linux에서는 루트 권한으로 다음 명령을 시도하십시오.
find / | grep \\.git$
이것은 .git로 끝나는 모든 파일을 검색합니다 .Windows, Linux 등의 검색 도구를 사용하여 수행 할 수 있습니다.
Linux 및 OS X에서 .git
의 루트 디렉토리 find
가 /
다음 과 같을 때 다음 명령이 가장 빠를 수 있습니다 (가없는 저장소 무시 ) .
find / -name .git -exec dirname {} \; -prune
그러나 아래 대부분의 저장소가 뿌리를 들어, 다음은 아마도 가장 빠른 (교체 할 수 있습니다 /
으로 .
또는 다른 루트) :
find / -type d -exec test -d {}/.git \; -prune -print
사용 된 기본 에 대한 빠른 설명 find
( 여기 에는 연산자 가 없기 때문에 -and
암시 적입니다. 즉, 방문한 각 노드에 대해 기본 노드 중 하나가로 평가 될 때까지 왼쪽에서 오른쪽으로 평가됨 false
) :
-name
인true
이름 (와일드 카드로, 여기에 자주는 아니지만)과 일치하는 경우-exec
로 끝나는 명령을 실행하고;
(\
쉘의 해석을 피하기 위해 이스케이프 됨 )true
반환 상태가0
(즉, OK) 인 경우입니다. 현재 노드는 다음과 같이 사용할 수 있습니다{}
(이스케이프가 필요하지 않음).-prune
항상true
이며 모든 하위 노드를 건너 뜁니다.-type d
인true
디렉토리에 대해-print
-exec
존재하는 경우 암시 적으로 추가되지 않기 때문에 여기에 필요합니다.
간단한 PowerShell 버전 :
Get-ChildItem . -Recurse -Hidden .git
Linux의 경우 :
dir="/home/${USER}"
dir_not="${dir}/miniconda3"
find /home/aeug -type d -iname ".git" -o -path "${dir_not}" -prune | xargs -0 echo
참고 URL : https://stackoverflow.com/questions/2020812/how-can-i-view-all-the-git-repositories-on-my-machine
'code' 카테고리의 다른 글
window.location.href, window.location.replace 및 window.location.assign의 차이점 (0) | 2020.08.13 |
---|---|
jQuery의 document.ready 함수는 언제 사용해야합니까? (0) | 2020.08.13 |
netcat을 사용하는 최소 웹 서버 (0) | 2020.08.13 |
패딩이 유효하지 않아 제거 할 수 없습니까? (0) | 2020.08.13 |
Google지도 : 위도 / 경도 값으로 국가, 주 /도 / 지역, 도시를 가져 오는 방법은 무엇입니까? (0) | 2020.08.13 |