![Git이 알고 있는 모든 파일을 표시하는 방법은 무엇입니까?](https://linux55.com/image/43995/Git%EC%9D%B4%20%EC%95%8C%EA%B3%A0%20%EC%9E%88%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
git이 역사 전반에 걸쳐 학습한 파일 이름(경로 포함) 목록을 어떻게 생성할 수 있나요?
답변1
순진한 솔루션:
git rev-list --all | xargs -n1 git ls-tree --full-name -r --name-only | sort -u
그러면 모든 커밋이 나열되고 이를 사용하여 각 커밋의 모든 파일이 나열됩니다. 중복 항목을 정렬하고 제거합니다. 그러나 시간이 오래 걸리므로 소규모 저장소에만 해당됩니다.
더 나은 해결책은 libgit2를 사용하여 동일한 작업을 수행하는 것입니다. 더 빠르지만 약간의 프로그래밍이 필요합니다. 이를 달성하기 위한 빠른 팁은 다음에서 찾을 수 있습니다.깃허브에서. 이는 pygit2를 사용하며 위의 셸 파이프라인보다 훨씬 빠릅니다.