[git] git가 추적중인 파일 목록을 표시하도록하려면 어떻게해야합니까?

커맨드 라인 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)"


답변