반응형

작업 트리(working tree), 작업 디렉토리(working directory), 프로젝트 폴더(project folder)란?

깃에서 작업 트리, 작업 디렉토리, 프로젝트 폴더란 프로젝트와 관련된 모든 소스 코드, 문서, 테스트, 기타 파일들이 들어 있는 폴더이다.

작업 사본(working copy)란?

작업 사본은 작업 디렉토리에 있는 파일의 총칭이다. 작업 디렉토리에 있는 모든 파일은 깃의 관리 대상이거나 관리 대상이 아니거나 둘 중 하나이다.

관리 대상 파일(tracked file)이란?

관리 대상 파일이란 리포에 추가되어 커밋된 파일이다. 깃은 관리 대상이 아닌 파일은 관리하지 않는다. 깃 리포 관점에서, 관리 대상이 아닌 파일은 작업 사본에 존재하지 않는 편이 좋다. 관리 대상 파일은 다음 세 가지 상태(state) 중 하나로 존재한다.

  • 커밋된 상태(commited state): 작업 사본에 있는 파일이 리포의 가장 최근 커밋과 동일한 상황을 말한다. 수정되지 않은 상태(unmidified state) 또는 정리된 상태(clean state)라고도 한다.
  • 수정된 상태(modified state): 작업 사본에 있는 파일이 리포의 가장 최근 커밋과 다른 상태(파일이 수정됨)다. 아직 스테이징 영역에 추가되지 않았음을 의미한다.
  • 스테이징 상태(staged state): 파일을 수정하여 다음 커밋에 포함되도록 표시한 상태이다. 파일이 스테이징됐다(staged) 또는 스테이징 영역(staging area)에 있다라고 표현한다. 스테이징 영역은 인덱스(index) 또는 캐시(cache)라고도 한다.

staging status vs staged state

staging status는 파일이 수정되어 스테이징 영역에 추가되었는지의 여부를 나타낸다. 커밋됨(commited), 수정됨(modified) 또는 스테이징됨(staged) 세 가지 상태를 가진다.
staged state파일이 이미 스테이징 영역에 있으며 그때의 해당 파일의 상태를 나타낸다. 해당하는 변경 사항 그 자체를 나타내며 파일이 스테이징 영역에 있음을 의미한다. 추가됨(Added), 수정됨(Modified), 삭제됨(Deleted) 세 상태 중 하나를 가진다.

깃 리포에서 가능한 파일 상태와 각 상태 간의 전환

반응형

+ Recent posts