Git 에서 파일이 추적되지 않았는지 확인하는 방법

GitBeginner
지금 연습하기

소개

이 랩에서는 Git 저장소에서 추적되지 않은 파일을 식별하는 방법을 배우게 됩니다. 전체 저장소 상태를 보여주는 git status 명령어를 사용하여 추적되지 않은 파일을 포함한 전체 상태를 확인하고, 추적되지 않은 파일만 더 집중적으로 나열하는 git ls-files --others 명령어를 사용하는 두 가지 주요 방법을 탐구할 것입니다. 이 랩을 마치면 Git 이 추적된 파일과 추적되지 않은 파일을 어떻게 구분하는지, 그리고 이러한 명령어를 사용하여 프로젝트의 파일을 효과적으로 관리하는 방법을 이해하게 될 것입니다.

git status 실행하여 추적되지 않은 파일 목록 확인

이 단계에서는 git status 명령어를 사용하여 Git 이 파일을 어떻게 추적하고 아직 알지 못하는 파일을 식별하는지 살펴보겠습니다.

먼저, my-time-machine 디렉토리에 있는지 확인합니다. 그렇지 않은 경우, cd 명령어를 사용합니다:

cd ~/project/my-time-machine

이제 이 디렉토리에 새 파일을 만들어 보겠습니다. notes.txt라고 부르겠습니다:

echo "Ideas for future projects" > notes.txt

이 명령어는 notes.txt라는 파일을 생성하고 그 안에 "Ideas for future projects" 텍스트를 넣습니다.

이제 Git 에게 저장소의 상태를 물어보겠습니다:

git status

다음과 유사한 출력을 볼 수 있습니다:

On branch master
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   message.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

"Untracked files:" 섹션을 주목하십시오. Git 은 notes.txt라는 새 파일이 디렉토리에 존재하지만 아직 저장소의 기록에 포함되지 않았음을 확인합니다. Git 은 생성하는 모든 파일을 자동으로 추적하지 않습니다. 이를 통해 버전 관리에 포함할 파일을 제어할 수 있습니다.

이것이 왜 중요할까요? 프로젝트 디렉토리에 임시 파일, 빌드 출력 또는 개인 메모가 있다고 상상해 보십시오. 이러한 파일들이 프로젝트의 기록을 어지럽히는 것을 원하지 않을 것입니다. Git 의 "untracked" 상태를 통해 이러한 파일을 버전 관리로 적극적으로 관리하는 파일과 분리할 수 있습니다.

다음 단계에서는 이러한 추적되지 않은 파일을 나열하는 또 다른 방법을 살펴보겠습니다.

git ls-files --others 사용

이전 단계에서 git status가 추적되지 않은 파일을 보여주는 것을 확인했습니다. Git 은 또한 인덱스 (index) 와 작업 트리 (working tree) 의 파일을 나열하기 위한 더 직접적인 명령어를 제공합니다. --others 옵션과 함께 git ls-files 명령어를 사용하여 추적되지 않은 파일만 나열할 수 있습니다.

여전히 ~/project/my-time-machine 디렉토리에 있는지 확인하십시오:

cd ~/project/my-time-machine

이제 다음 명령어를 실행합니다:

git ls-files --others

다음과 같은 출력을 볼 수 있습니다:

notes.txt

이 명령어는 작업 디렉토리에 있지만 Git 에 의해 추적되지 않는 파일을 특별히 나열합니다. Git 이 현재 무시하거나 아직 알지 못하는 파일만 깨끗하게 나열하려는 경우 유용한 명령어입니다.

git statusgit ls-files --others 비교:

  • git status는 변경 사항이 있는 추적된 파일, 스테이징된 변경 사항 및 추적되지 않은 파일을 포함하여 저장소의 상태에 대한 포괄적인 개요를 제공합니다.
  • git ls-files --others는 더 집중적이며 추적되지 않은 파일만 나열합니다.

두 명령어 모두 다른 상황에서 유용합니다. git status는 일반적인 개요에 적합하며, git ls-files --others는 특히 추적되지 않은 파일을 식별하려는 경우, 아마도 저장소에 추가할지 또는 무시할지 결정하기 위해 유용합니다.

다음 단계에서는 다른 파일을 추가하고 Git 이 어떻게 반응하는지 관찰하여 추적된 파일과 추적되지 않은 파일의 차이점을 더 자세히 살펴보겠습니다.

추적 파일 vs. 추적되지 않은 파일 테스트

이 단계에서는 notes.txt를 Git 의 추적에 추가하고 상태 변화를 관찰하여 추적된 파일과 추적되지 않은 파일에 대한 이해를 굳건히 할 것입니다.

먼저, ~/project/my-time-machine 디렉토리에 있는지 확인합니다:

cd ~/project/my-time-machine

이제 git add 명령어를 사용하여 Git 에게 notes.txt 파일 추적을 시작하도록 지시해 보겠습니다:

git add notes.txt

이 명령어는 notes.txt를 스테이징 영역 (staging area) 에 추가하여 다음 커밋에 포함될 수 있도록 준비합니다.

이제 저장소의 상태를 다시 확인해 보겠습니다:

git status

다음과 유사한 출력을 볼 수 있습니다:

On branch master
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   message.txt
        new file:   notes.txt

notes.txt가 더 이상 "Untracked files:" 아래에 나열되지 않는 것을 확인하십시오. 대신 "Changes to be committed:" 아래에 "new file"로 표시되어 나타납니다. 이는 Git 이 이제 notes.txt를 추적하고 있으며 다음 저장 지점 (커밋) 에 포함될 준비가 되었음을 의미합니다.

이것은 핵심적인 차이점을 보여줍니다:

  • 추적되지 않은 파일 (Untracked files): 작업 디렉토리에 있지만 git add로 스테이징 영역에 추가되지 않은 파일입니다. Git 은 해당 파일이 존재한다는 것을 알고 있지만 해당 파일의 버전을 관리하지 않습니다.
  • 추적된 파일 (Tracked files): Git 이 적극적으로 관리하는 파일입니다. 파일이 추가되고 커밋되면 Git 은 시간이 지남에 따라 해당 파일의 변경 사항을 추적합니다.

git add를 사용하면 버전 관리 프로젝트에 포함할 파일을 Git 에게 명시적으로 지시합니다. 이 제어는 프로젝트를 효과적으로 관리하고 기록을 깨끗하게 유지하는 데 필수적입니다.

다음 랩에서는 이러한 기본적인 개념을 기반으로 더 많은 커밋을 만들고 Git 의 기록의 강력함을 탐구할 것입니다.

요약

이 랩에서는 Git 저장소에서 추적되지 않은 파일을 식별하는 방법을 배웠습니다. 먼저, 저장소의 상태에 대한 포괄적인 개요를 제공하는 git status 명령어를 사용했습니다. 여기에는 추적되지 않은 파일에 대한 전용 섹션이 포함되어 있습니다. 이를 통해 Git 이 적극적으로 추적하는 파일과 알지 못하는 새 파일을 어떻게 구별하는지 알 수 있었습니다.

그런 다음, 작업 디렉토리에서 추적되지 않은 파일만 나열하도록 특별히 설계된 대체 방법인 git ls-files --others 명령어를 살펴보았습니다. 이 명령어는 현재 Git 의 버전 관리 하에 있지 않은 파일을 확인하는 데 더 집중적인 방법을 제공합니다. 추적되지 않은 파일을 식별하는 방법을 이해하는 것은 프로젝트의 기록에 포함할 파일을 관리하고 저장소를 깨끗하게 유지하는 데 중요합니다.