안녕하세요.
디자인도 하고, 개발도 하는 '디발자 뚝딱'입니다.
이번 포스팅에서는 working directory, staging area, repository의 개념을 정리해보겠습니다.
개발자라면 이 3가지 영역을 잘 이해해야 Git을 다루기가 쉽다고 해셔 제가 낱낱이 파헤쳐봤는데요.
그 내용을 공유해드릴게요.
지금부터는 가독성을 위해 문어체를 사용하겠습니다!
Git의 3가지 영역 정리
working directory
- working tree라고 말하기도 함
- 현재 작업하고 있는 영역. 즉, 작업을 하고 있는 프로젝트 디렉토리
- 아직 추적(track)하고 있지 않은 상태
staging area
- index라고 하기도 함
- $git add 명령어로 전달한 파일들이 존재하는 영역
- commit을 하게 되면 staging area에 있는 파일들만 commit에 반영됨
repository
- working directory의 변경 이력들이 저장되어 있는 영역
- commit들이 모여있는 저장소
🤚🏻 잠깐만요, 그렇다면 이 영역들의 역할은?
1. working directory에서 뭔가를 작업하고
2. 작업한 파일들을 $git add
3. commit하면 staging area에 있던 파일들이 repository에 저장됨
Git의 상태 정리
Git에서 파일들은 크게 2가지 상태로 나뉘는데요.
1. untracked 상태
- untracked는 '추적되지 않고 있는'이라는 뜻
- 파일이 Git에 의해서 그 변동사항들이 추적되지 않고 있는 상태
- working directory에 있는 파일이지만 Git으로 버전관리를 하지 않고 있는 상태
=> 파일을 새로 생성하고 그 파일을 한 번도 git add 해주지 않았다면 untracked 상태
2. tracked 상태 (파일이 Git에 의해 그 변동사항이 추적되고 있는 상태)
(1) staged 상태
- staged는 '스테이징된, stage area에 올려진'이라는 뜻
- 파일의 내용이 수정되고나서, staging area에 올라와 있는 상태
=> 새로 생성한 파일에 내용을 쓰고 $git add 명령어 실행했거나, 한번이라도 commit에 포함됐었던 파일의 내용을 수정하고 $git add를 실행하면 이 상태
(2) unmodified 상태
- unmodified는 '수정되지 않은, 변한 게 없는'이라는 뜻
- 현재 파일의 내용이 최신 커밋의 모습과 비교했을 때 전혀 바뀐 게 없는 상태
- commit을 하고 난 직후에는 working directory 안의 모든 파일들이 이 상태가 됨
(3) modified 상태
- modified는 '수정된'이라는 뜻
- 최신 커밋의 모습과 비교했을 때 조금이라도 바뀐 내용이 있는 상태
3. 이미지로 한 눈에 정리하기
1. Add the file
untraked 상태의 파일을 처음으로 $git add 해주면 Staged 상태가 된다.
2. Edit the file
최신 커밋과 비교했을 때 차이가 없는 unmodified 상태의 파일의 내용을 수정하면 modified 상태가 된다.
3. remove the file
파일을 삭제하면 당연히 Git 에서 더이상 인식하지 않는다.
4. Stage the file
modified 상태의 파일을 $git add 해주면 staged 상태가 된다.
5. Commit
commit을 하면 staging area에 있던 파일들이 커밋에 반영되고, 이제 모든 파일들은 최신 커밋과 차이가 없게 되니까 unmodified 상태가 된다.
'코딩도 합니다 > Git' 카테고리의 다른 글
[깃 Git] 깃 핵심 단어 개념 정리 / Git이란 / 레포지토리(repository) / 커밋(commit) (0) | 2022.01.19 |
---|