Git이 알고 있는 모든 파일을 표시하는 방법은 무엇입니까?

Git이 알고 있는 모든 파일을 표시하는 방법은 무엇입니까?

git이 역사 전반에 걸쳐 학습한 파일 이름(경로 포함) 목록을 어떻게 생성할 수 있나요?

답변1

순진한 솔루션:

git rev-list --all | xargs -n1 git ls-tree --full-name -r --name-only  | sort -u

그러면 모든 커밋이 나열되고 이를 사용하여 각 커밋의 모든 파일이 나열됩니다. 중복 항목을 정렬하고 제거합니다. 그러나 시간이 오래 걸리므로 소규모 저장소에만 해당됩니다.

더 나은 해결책은 libgit2를 사용하여 동일한 작업을 수행하는 것입니다. 더 빠르지만 약간의 프로그래밍이 필요합니다. 이를 달성하기 위한 빠른 팁은 다음에서 찾을 수 있습니다.깃허브에서. 이는 pygit2를 사용하며 위의 셸 파이프라인보다 훨씬 빠릅니다.

관련 정보