git ls-tree 브랜치 파일 실행
이 단계에서는 git ls-tree 명령을 사용하여 Git 저장소 내의 특정 브랜치와 파일의 내용을 확인하는 방법을 살펴봅니다. 이 명령은 실제로 해당 브랜치를 체크아웃하지 않고도 특정 시점 또는 다른 브랜치에서 프로젝트의 상태를 검사하는 데 유용합니다.
먼저, 프로젝트 디렉토리에 있는지 확인해 보겠습니다.
cd ~/project/my-time-machine
이제 feature-branch라는 새 브랜치를 생성하고 해당 브랜치로 전환해 보겠습니다. 거기에 새 파일을 추가할 것입니다.
git branch feature-branch
git checkout feature-branch
echo "This is a new feature." > feature.txt
git add feature.txt
git commit -m "Add new feature file"
커밋 후 다음과 유사한 출력을 볼 수 있습니다.
[feature-branch a1b2c3d] Add new feature file
1 file changed, 1 insertion(+)
create mode 100644 feature.txt
이제 master 브랜치에는 존재하지 않는 feature.txt 파일이 있는 새로운 feature-branch 브랜치가 있습니다.
master 브랜치로 다시 전환해 보겠습니다.
git checkout master
브랜치가 전환되었음을 나타내는 출력을 볼 수 있습니다.
Switched to branch 'master'
현재 디렉토리에서 feature.txt 파일이 더 이상 보이지 않는다는 것을 알 수 있습니다. 왜냐하면 master 브랜치에 있기 때문입니다.
이제 git ls-tree를 사용하여 다시 전환하지 않고도 feature-branch의 내용, 특히 feature.txt 파일을 master 브랜치에서 확인해 보겠습니다.
git ls-tree의 기본 구문은 git ls-tree <tree-ish> <path>입니다. <tree-ish>는 브랜치 이름, 커밋 해시 또는 태그가 될 수 있습니다. <path>는 검사하려는 파일 또는 디렉토리의 경로입니다.
feature-branch의 루트 디렉토리의 내용을 보려면 다음을 사용할 수 있습니다.
git ls-tree feature-branch
feature-branch의 루트에 있는 파일을 보여주는 다음과 유사한 출력을 볼 수 있습니다.
100644 blob a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 feature.txt
100644 blob f9e8d7c6b5a4938271605f4e3d2c1b0a98765432 message.txt
이 출력은 파일 모드, 객체 유형 (파일의 경우 blob), 객체 해시 및 파일 이름을 보여줍니다.
feature-branch의 feature.txt와 같은 특정 파일의 세부 정보를 보려면 다음을 사용할 수 있습니다.
git ls-tree feature-branch feature.txt
feature.txt에 대한 다음과 유사한 출력을 볼 수 있습니다.
100644 blob a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 feature.txt
이 명령을 사용하면 현재 작업 디렉토리를 변경하지 않고도 다른 브랜치 또는 과거 커밋을 들여다보며 특정 파일의 상태를 확인할 수 있습니다. 이는 브랜치 간의 파일을 비교하거나 과거 버전을 검사하는 데 매우 유용합니다.