[GIT] Stage

2022. 7. 25. 18:31GIT

스테이지

stage는 임시로 저장하는 공간으로 워킹 디렉토리에 tracked 파일들을 관리한다.

스테이지는 워킹 디렉토리와 실제로 저장하는 기록 공간 사이에 있는 임시 영역이다.

깃은 워킹 디렉토리에서 작업이 끝난 파일을 스테이지로 잠시 복사한다.

파일의 컨텐츠 내용을 직접 가지고 있지는 않고 파일의 추적 상태 정보만 기록한다.

 

스테이지는 커밋을 빠르게 처리하기 위해 존재한다.

실제로 저장하여 기록하는 공간에는 스테이지 영역에서 가리키는 파일 내용을 기반으로 변경된 차이만 기록한다.

파일들의 스테이지 상태는 status 명령어 또는 git ls-files 명령어로 확인 할 수 있다.

$ git status

$ git ls-files --stage

스테이지 영역에 등록된 파일들은 stage 상태와 unstage 상태로 구분된다.

버전 관리에서 제외하고 싶은 파일은 .gitignore 파일에 등록하면 된다.

 

파일 stage 상태와 unstage 상태

깃이 변화 이력을 기록하려면 파일들이 최종 상태가 stage 상태가 되어야 한다.

unstage 상태라는 것은 워킹 디렉토리에 있는 파일과 스테이지 영역에 있는 파일 내용에 차이가 있다는 의미다.

unstage 상태는 파일이 수정되어 임시적으로 스테이지 목록에서 제외된 것으로 실제 파일이 없어진 것은 아니다.

git add 명령어를 사용하면 다시 스테이지에 추가할 수 있다.

 

파일의 modified 상태와 unmodified 상태

코드를 변경한다는 것은 워킹 디렉토리에 있는 파일을 수정한다는 것을 의미

파일이 수정되면 워킹 디렉토리와 스테이지 간 내용 차이가 있다.

스테이지는 수정한 파일과 원본 파일을 구분하려고 수정함 상태와 수정하지 않음 상태로 표현한다.

modified 상태

스테이지에 등록된 파일은 깃이 추적관리 한다.

깃이 실제로 기록한 파일이다.

tracked 상태인 파일만 수정 여부를 관리할 수 있다.

tracked 상태인 파일이 수정되면 스테이지는 파일 상태를 modified 상태로 변경한다.

그러면 수정된 파일은 스테이지에서 잠시 제외된다.

깃은 수정 여부만 체크해주기 때문에 modified 상태로 변경된 파일은 스테이지로 재등록해야 한다.

수정된 파일을 스테이지 영역으로 다시 적용하려면 git add 명령어로 재등록하면 된다.

수정 여부에 따른 파일 상태

unmodified 상태

tracked 상태이면서 스테이지에 한 번도 수정하지 않은 원본 상태를 의미한다.

 

워킹 디렉토리와 스테이지 상태 구분

  • 워킹 디렉토리 상태
    • tracked (스테이지에 등록)
      •  stage (기록 할 수 있는 상태)
        • unmodified (스테이지 등록된 이후 수정하지 않은 상태)
      • unstage (파일에 변화가 있어 기록 할 수 없는 상태)
        • modified (스테이지 등록된 이후 수정된 상태)
    • untracked (스테이지에 미등록)
728x90

'GIT' 카테고리의 다른 글

[GIT] 파일 관리 목록에서 제외하기  (0) 2022.07.25
[GIT] 파일 상태 확인하기  (0) 2022.07.25
[GIT] Working directory  (0) 2022.07.25
[GIT] 깃 저장소 생성  (0) 2022.07.25
[GIT] 환경 설정  (0) 2022.07.25