커맨드 라인 git을 사용하여 git이 저장소에서 추적중인 파일 목록을 표시하도록하려면 어떻게해야합니까?
답변
분기 master
에서 현재 추적중인 모든 파일을 나열 하려면 다음 명령을 사용할 수 있습니다.
git ls-tree -r master --name-only
존재하는 파일 목록 (예 : 삭제 된 파일 포함)을 원하는 경우 :
git log --pretty=format: --name-only --diff-filter=A | sort - | sed '/^$/d'
답변
git이 관리하는 파일은로 표시됩니다 git ls-files
. 매뉴얼 페이지를 확인하십시오.
답변
허용 된 답변은 현재 디렉토리의 트리에있는 파일 만 표시합니다. 표시하려면 모든 사용을 (현재 분기)에 커밋 된 추적 파일을
git ls-tree --full-tree --name-only -r HEAD
--full-tree
repo의 루트 디렉토리에있는 것처럼 명령을 실행합니다.-r
하위 디렉토리로 재귀합니다. 와 결합--full-tree
하면 커밋 된 모든 추적 파일이 제공됩니다.--name-only
파일 경로 만 원할 때 SHA / 권한 정보를 제거합니다.HEAD
추적되고 커밋 된 파일 목록을 원하는 분기를 지정합니다. 이것을master
또는 다른 지점 이름으로 변경할 수 있지만 지금HEAD
은 커밋 한 커밋입니다.
이것은 ~ duplicate question https://stackoverflow.com/a/8533413/4880003에 허용되는 답변의 방법입니다 .
답변
이것으로 컬러 출력을 원할 수 있습니다.
현재 분기의 현재 디렉토리에 추적 된 파일 및 디렉토리를 나열하기 위해이 단일 라이너를 사용합니다.
ls --group-directories-first --color=auto -d $(git ls-tree $(git branch | grep \* | cut -d " " -f2) --name-only)
별명으로 추가 할 수 있습니다.
alias gl='ls --group-directories-first --color=auto -d $(git ls-tree $(git branch | grep \* | cut -d " " -f2) --name-only)'
파일을 재귀 적으로 나열하려면 다음을 수행하십시오.
'ls' --color=auto -d $(git ls-tree -rt $(git branch | grep \* | cut -d " " -f2) --name-only)
그리고 별명 :
alias glr="'ls' --color=auto -d \$(git ls-tree -rt \$(git branch | grep \\* | cut -d \" \" -f2) --name-only)"