Git의 "작업 영역"은 3가지가 있었다.
작업 영역과 관련해서 한 가지 더 알아두면 좋은 내용이 있는데
그건 바로 Git으로 관리되는 파일은 일종의 '상태(status)'라는 걸 가진다는 사실이다.
일단 Git에서 파일들은 크게 다음 2가지 상태를 가진다.
- Untracked 상태
- Tracked 상태
그리고 Tracked 상태는 다시 아래와 같은 3가지 상태로 나눌 수 있다
- Staged 상태
- Unmodified 상태
- Modified 상태
1. Untracked 상태
Untracked는 '추적되지 않고 있는'이라는 뜻이다.
파일을 새로 생성하고 그 파일을 한 번도 git add 해주지 않았다면 이 상태입니다
그래서 이 상태는 파일이 Git에 의해서 그 변동사항이 전혀 추적되고 있지 않는 상태를 뜻한다.
2. Tracked 상태
파일이 Git에 의해 그 변동사항이 추적되고 있는 상태. 이 상태는 다시 그 특성에 따라 3가지 상태로 나뉜다.
(1) Staged 상태
파일의 내용이 수정되고나서, staging area에 올라와있는 상태를 Staged(스테이징된, stage area에 올려진) 상태라고 한다.
새로 생성한 파일에 내용을 쓰고 git add를 해주거나
한 번이상 커밋에 포함됐었던 파일이라도 내용을 수정하고 git add를 해주면 이 상태이다.
(2) Unmodified 상태
현재 파일의 내용이 최신 커밋의 모습과 비교했을 때 전혀 바뀐 게 없는 상태면 그 파일은 Unmodified(수정되지 않은, 변한 게 없는)이다. 커밋을 하고 난 직후에는 working directory 안의 모든 파일들이 이 상태가 된다.
(3) Modified 상태
최신 커밋의 모습과 비교했을 때 조금이라도 바뀐 내용이 있는 상태면 그 파일은 Modified(수정된) 상태이다.
이렇게 Git에서 파일은 매 순간 4가지 상태 중 하나의 상태에 있게 된다. 이 내용을 그림으로 정리하면 아래와 같습니다.
어떤 경우에, 어떻게 상태 전환이 발생하는지 설명해보자면
- Add the file : Untracked 상태의 파일을 처음으로 git add 해주면 Staged 상태가 된다.
- Edit the file : 최신 커밋과 비교했을 때 차이가 없는 Unmodified 상태의 파일의 내용을 수정하면 Modified 상태가 된다
- Stage the file : Modified 상태의 파일을 git add 해주면 Staged 상태가 된다
- Remove the file : 파일을 삭제하면 Git에선 더이상 인식하지 않는다.
- Commit : 커밋을 하면 staging area에 있던 파일들이 커밋에 반영되고, 이제 모든 파일들은 최신 커밋과 차이가 없게 되니까 Unmodified 상태가 된다.
'Programming > Git' 카테고리의 다른 글
Git commit 다루기(히스토리, 수정, 생성, reset) (0) | 2023.01.11 |
---|---|
Github 사용법(local 레포지토리 github에 올리기, remote, fork) (0) | 2023.01.11 |
git add 활용하기 (0) | 2023.01.11 |
Git 명령어 정리 (0) | 2023.01.11 |
Git의 3가지 작업 영역 (0) | 2023.01.11 |