-
(git) 4 - Git 의 세 가지 영역 (작업 영역, 인덱스 영역, 헤더 영역)개발/git 2024. 10. 13. 16:42
git 에서는 크게 3가지 영역으로 나눠져 있다.
1. 작업 영역
2. 인덱스 영역
3. 헤더 영역이다.
해당하는 폴더를 git 폴더로 사용하겠다 = git init
그래서 여기에 해당하는 A 폴더를 working directory(작업 영역) 이라 부른다.
작업영역에서 일어나는 변경을 감지해서 기록하고 싶다면 기록하게 되는데
이 영역이 바로 인덱스 영역(목차)이다.
이는 Tree 목차로 이루어져 있다.
변경이 감지된 파일만 인덱스 영역에 들고오는데,
이 명령어가 바로 git add 이다.
인덱스 영역은 폴더(Tree)
만들어 진 파일(BLOB) 이다.
※ Binary Large Object (이진수로 된 큰 Object = 파일)
이 인덱스 영역에 있는 것을 영구적으로 기록하고 싶다면 헤더 영역에 넣으면 된다.
헤더는 브랜치(가지)가 있는데, V1 이라 기록되고, 해당하는 형태(형상)을 그대로 가져와 V1 으로 기록한다.
이렇게 기록하는 명령어가 git commit 이다.
만약 git commit 을 안한 상태로 text1 파일을 변경하고 git add 를 하게 되면 인덱스 영역이 바뀌기 때문
text1 원래 파일은 변경된 text1 파일로 변경되고 이전으로 되돌릴 수 없다.
따라서 git commit 을 통해 영구히 기록하는 것이다.
새로운 파일이 추가되면 사진에 나와있는 보라색 영역처럼
인덱스 영역에 새로운 Tree 형태의 목차가 생긴다.
이전에 있던 초록색 Tree 형상은 40자의 해쉬값으로 관리한다.
즉 참조한 값을 가지고 있는 것이다.
헤더는 맨 마지막을 가리키는데 만약 내가 이전 버전으로 돌아가고 싶다면
헤더를 이전 버전인 V2 로 옮기고, 복제해서 트리를 만들면 된다.
history 가 다 있기 때문에 무조건 복구가 가능하다.
인덱스 영역 자체도 따로 복제돼서 관리가 되고 있기 때문에
각각의 트리 history 가 없어지더라도 복구가 가능하다.
출처 : https://www.inflearn.com/course/%EA%B9%83-%EC%9E%85%EB%AC%B8/dashboard
'개발 > git' 카테고리의 다른 글
(git) 6 - Git 실습 (중급) (0) 2024.10.13 (git) 5 - Git 실습 (기초) (2) 2024.10.13 (git) 3 - github 기본 (0) 2024.04.04 (git) 3 - github 원격저장소 특정 브랜치 가져오기 (0) 2024.04.03 (git) 2 - github 프로젝트 올리기 (0) 2024.03.15