Git - 현재 소스 제어 하에 있는 모든 파일을 나열하시겠습니까?

Git - 현재 소스 제어 하에 있는 모든 파일을 나열하시겠습니까?

현재 git에서 소스 제어하에 있는 모든 파일을 나열하는 방법이 있습니까? (수정된 것만이 아닙니다).

답변1

특정 지점에 대한 모든 파일을 나열하려면 다음과 같습니다 master.

자식 ls-트리-r master --이름만

-r옵션을 사용하면 하위 디렉터리로 재귀하여 현재 버전 관리 하에 있는 각 파일을 인쇄할 수 있습니다. 당신이 속해 있는 다른 지점에 대한 목록을 가져오는 HEAD대신 대신 지정할 수도 있습니다 .master

지금까지 존재했던 모든 파일의 목록을 얻으려면,여기를 보아라:

자식 로그--pretty=형식: --name-only --diff-filter=A | 정렬 -u

답변2

git ls-files명령은 필요한 작업을 수행합니다.

원천:http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html

답변3

git ls-files현재 작업 디렉토리의 파일만 인쇄합니다.

예를 들어 도트 파일( )에 대한 git 저장소가 있는 경우 core.worktree = /git 루트 외부에 파일이 있게 되며 이 간단한 명령은 더 이상 작동하지 않습니다.

즉, 다음과 같이 작동합니다.

git --git-dir "`git rev-parse --git-dir`" \
    -C "`git config core.worktree || pwd`" \
    ls-files

예:

mkdir ~/dotfiles
cd ~/dotfiles
git config core.worktree /

# Ignore all files by default, else Git will find all files under "/"
echo "*" > .git/info/exclude

# Add files at the git repo's root and somewhere in the work tree
touch README
git add -f README
git add -f /etc/ssh/sshd_config

# `git status` would now print:
# new file:   ../../../etc/ssh/sshd_config
# new file:   README
git status

git commit -m "Initial commit"

# At this point, `git ls-files` prints only:
# README
git ls-files

# But you can print all files inside the work tree. This will print:
# etc/ssh/sshd_config
# home/yourusername/dotfiles/README
git --git-dir "`git rev-parse --git-dir`" -C "`git config core.worktree || pwd`" ls-files

경로를 지정하려는 경우상대적인현재 (셸) 디렉터리에 다음 작업을 수행합니다.

alias gls='git ls-tree -r master --name-only HEAD "`git config core.worktree`"'

위의 예에서는 인쇄됩니다.

README
../../../etc/ssh/sshd_config

답변4

스크린샷

이미지를 살펴보십시오. 오른쪽에는 패치와 트리의 두 가지 옵션이 있습니다. 트리를 선택하면 각 커밋의 폴더 구조를 볼 수 있습니다.

관련 정보