수정되지 않은 파일로 테스트
이전 단계에서 git show --name-only 및 git diff-tree -r --name-only가 특정 커밋에서 변경된 파일을 표시하는 방법을 살펴보았습니다. 이제 파일이 수정되지 않은 커밋에서 이러한 명령어를 실행할 때 어떤 일이 발생하는지 살펴보겠습니다 (이는 단일 커밋의 경우에 해당하지 않지만, 아이디어를 시뮬레이션할 수 있습니다).
현재 저장소에는 파일이 추가된 커밋이 하나만 있으므로 해당 커밋에서 이러한 명령어를 실행하면 항상 message.txt가 표시됩니다. 수정된 파일만 표시하는 개념을 설명하기 위해, 파일을 변경하지 않은 커밋이 있다고 가정해 보겠습니다 (이는 일반적으로 병합 커밋 또는 메타데이터만 변경하는 커밋에서 발생하지만, 이 연습에서는 파일이 나열되지 않을 때의 출력에 집중하겠습니다).
파일을 수정하지 않은 커밋에서 git show --name-only 또는 git diff-tree -r --name-only를 실행하면 파일 이름 부분의 출력은 비어 있습니다.
개념을 강화하기 위해 배운 명령어를 다시 실행해 보겠습니다. my-time-machine 디렉토리에 있는지 확인합니다.
cd ~/project/my-time-machine
git show --name-only를 다시 실행합니다.
git show --name-only HEAD
출력은 다음과 유사합니다.
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:00:00 2023 +0000
Send a message to the future
message.txt
이제 git diff-tree -r --name-only를 다시 실행합니다.
git diff-tree -r --name-only HEAD
출력은 다음과 같습니다.
message.txt
두 명령어 모두 message.txt를 올바르게 표시합니다. 이 파일이 이 커밋에서 도입되었기 때문입니다. 여기서 핵심은 이러한 명령어가 지정된 커밋에서 수정된 (추가, 삭제 또는 수정된) 파일만 나열하도록 설계되었다는 것입니다. 커밋이 파일을 변경하지 않으면 이러한 명령어 (특히 파일 목록 부분) 는 아무것도 표시하지 않습니다.
이 동작은 커밋에 의해 도입된 변경 사항의 범위를 이해하는 데 중요합니다. 특정 변경 사항의 영향을 받은 프로젝트의 부분을 빠르게 식별하는 데 도움이 됩니다.