Git 교과서

코드 이력, 하나도 놓치지 마라!

버전 관리 시스템의 이해와 설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지
깃, 소스트리, 깃허브로 실습하며 기본기를 탄탄하게 다진다!

Yes24 교보문고 알라딘 인터파크 길벗

파일의 untracked 상태와 tracked 상태


깃의 추적(tracked) 개념을 알아봅시다.
깃이 다른 VCS보다 뛰어난 것은 지정된 파일들의 모든 것을 추적하는 관리 시스템이기 때문입니다.
깃은 워킹 디렉터리에 있는 파일들을 추적됨추적되지 않음 상태로 구분합니다.


untracked 상태


실제 작업 중인 파일은 워킹 디렉터리 안에 있습니다.
워킹 디렉터리는 현재 작업 중인 소스 코드를 담고 있으며, 운영 체제도 워킹 디렉터리 안에 있는 파일들만 접근하고 수정할 수 있습니다.

워킹 디렉터리는 사용자 작업 공간이라고 생각하면 됩니다. 이 공간에 파일을 추가하거나 수정했다고 해서 깃이 자동으로 관리해 주지는 않습니다. 워킹 디렉터리에 새로 생성된 파일은 모두 추적되지 않음(untracked) 상태입니다. 이 파일을 관리하려면 깃에 추적하라고 통지해 주어야 합니다. 통지하지 않은 파일은 깃에서 따로 추적하지 않습니다.


tracked 상태


워킹 디렉터리에 새 파일을 추가하면 추적되지 않음(untracked) 상태입니다.
워킹 디렉터리 안에 추적되지 않는 상태의 파일들은 별도로 명령어를 실행하여 추적(tracked) 상태로 변경해 주어야 합니다.
이때는 git add 명령어를 사용합니다.

git add 명령어를 실행하여 추적 상태로 변경
깃_워킹디렉터리

깃이라고 모든 파일을 자동으로 완벽하게 관리할 수는 없습니다.
수많은 파일을 모두 자동으로 처리해야 한다면 시스템에 엄청난 부하가 발생됩니다.

깃은 요청받은 파일들만 추적 관리합니다. 사실 깃 입장에서는 어떤 파일이 정말로 추적 관리가 필요한지 알 수 없습니다.
따라서 추적하는 파일들은 tracked 상태로 표시합니다.
깃이 tracked와 untracked 개념을 사용하는 것은 시스템 부하를 줄이고, 좀 더 효율적으로 파일 이력을 관리하기 위해서입니다.

실제로 개발 작업을 할 때 워킹 디렉터리의 파일들은 아주 빈번하게 수정됩니다.
개발자에게 관리할 파일 목록들을 제출해 달라고 요청하는 것이 더 현명합니다.
따라서 요청받은 파일들만 이력을 관리한다면 매번 파일 목록을 추적하려고 많은 리소스를 낭비할 필요가 없습니다.
이렇게 관리할 파일 목록에 등록된 상태를 추적 상태라고 합니다.