소개
이 랩에서는 Git 인덱스 (Git index), 즉 스테이징 영역에 파일이 있는지 확인하는 방법을 배우게 됩니다. 인덱스의 개념과 커밋을 위해 변경 사항을 준비하는 데 있어 인덱스의 역할을 살펴볼 것입니다.
git ls-files --stage 명령을 사용하여 인덱스의 내용을 확인하고, git status 명령을 사용하여 스테이징된 변경 사항과 스테이징되지 않은 변경 사항을 포함하여 저장소의 상태에 대한 포괄적인 개요를 얻을 것입니다. 마지막으로, 아직 인덱스에 추가되지 않은 파일을 Git 이 어떻게 처리하는지 테스트할 것입니다.
git ls-files --stage 실행
이 단계에서는 스테이징 영역이라고도 하는 Git 인덱스를 살펴보겠습니다. 인덱스는 Git 에서 중요한 개념입니다. 이는 변경 사항을 커밋하기 전에 준비하는 대기 영역과 같습니다.
이렇게 생각해 보세요. 작업 디렉토리에서 파일에 변경 사항을 적용해도 다음 커밋에 자동으로 포함되지 않습니다. 먼저 git add를 사용하여 인덱스에 추가해야 합니다. 인덱스는 스테이징한 변경 사항의 스냅샷을 보관하며, 커밋할 준비가 되어 있습니다.
현재 인덱스에 무엇이 있는지 확인하려면 git ls-files --stage 명령을 사용합니다. 이 명령은 다음 커밋을 위해 현재 스테이징된 파일을 나열합니다.
my-time-machine 디렉토리에서 시도해 보겠습니다.
cd ~/project/my-time-machine
git ls-files --stage
이 새 저장소에서 아직 인덱스에 파일을 추가하지 않았으므로 출력이 표시되지 않아야 합니다. 이는 현재 인덱스가 비어 있음을 나타냅니다.
인덱스를 이해하는 것은 Git 을 마스터하는 데 핵심입니다. 각 커밋에 포함될 내용을 세밀하게 제어하여 관련 변경 사항을 함께 그룹화하고 커밋 기록을 깨끗하고 체계적으로 유지할 수 있습니다.
git status 를 사용하여 인덱스 확인
이전 단계에서는 git ls-files --stage를 사용하여 인덱스의 내용을 확인했습니다. 인덱스를 포함하여 저장소의 상태를 이해하는 데 도움이 되는 또 다른 명령은 git status입니다.
git status 명령은 마지막 커밋과 비교하여 작업 디렉토리 및 스테이징 영역에서 무슨 일이 일어나고 있는지 요약하여 제공합니다. 변경된 파일, 다음 커밋을 위해 스테이징된 파일, 추적되지 않은 파일을 알려줍니다.
my-time-machine 디렉토리에서 git status를 실행해 보겠습니다.
cd ~/project/my-time-machine
git status
이것은 완전히 새로운 저장소이고 아직 파일을 만들거나 커밋을 하지 않았으므로 출력은 다음과 유사해야 합니다.
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
이 출력은 커밋할 변경 사항이 없음을 확인하며, 이는 git ls-files --stage가 보여준 것처럼 인덱스가 비어 있음을 의미합니다. "nothing to commit" 메시지는 인덱스의 상태와 직접적으로 관련됩니다.
랩을 진행하면서 파일을 만들고 스테이징하기 시작하면 git status의 출력이 인덱스의 내용과 작업 디렉토리의 상태를 반영하도록 어떻게 변경되는지 확인할 수 있습니다.
인덱싱되지 않은 파일 테스트
이 단계에서는 작업 디렉토리에 새 파일을 만들고 Git 이 인덱스에 추가되기 전에 어떻게 인식하는지 관찰합니다. 이를 통해 작업 디렉토리의 파일과 인덱스의 파일 간의 차이점을 이해할 수 있습니다.
먼저, my-time-machine 디렉토리에 있는지 확인합니다.
cd ~/project/my-time-machine
이제 echo 명령을 사용하여 간단한 텍스트 파일을 만들어 보겠습니다.
echo "This is a new file." > new_file.txt
이 명령은 new_file.txt라는 파일을 만들고 텍스트 "This is a new file."을 씁니다.
이제 git status를 사용하여 저장소의 상태를 다시 확인해 보겠습니다.
git status
다음과 유사한 출력을 볼 수 있습니다.
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
new_file.txt
nothing added to commit but untracked files present (use "git add" to track)
"Untracked files:" 섹션을 확인하십시오. Git 은 new_file.txt가 작업 디렉토리에 있지만 아직 Git 에서 추적하지 않음을 확인합니다. 즉, 인덱스에 없고 어떤 커밋 기록에도 포함되지 않습니다.
이것이 핵심 개념입니다. Git 은 git add를 사용하여 명시적으로 추적하도록 지시한 파일만 추적합니다. Git 저장소의 작업 디렉토리에서 생성된 모든 새 파일은 처음에 "추적되지 않음 (untracked)" 상태입니다.
다음 단계에서는 이 파일을 인덱스에 추가하여 첫 번째 커밋을 준비합니다.
요약
이 랩에서는 파일이 Git 인덱스 (스테이징 영역 (staging area) 이라고도 함) 에 있는지 확인하는 방법을 배웠습니다. git ls-files --stage 명령을 사용하여 다음 커밋을 위해 현재 스테이징된 파일을 직접 나열했습니다. 또한 스테이징, 수정 및 추적되지 않은 파일에 대한 정보를 포함하여 저장소의 상태에 대한 포괄적인 개요를 제공하고 인덱스의 내용을 확인하는 데 도움이 되는 git status 명령도 살펴보았습니다.



