[Git] Git 파해치기 - #1 Git 객체
- 본업/etc.
- 2023. 7. 7.
이전글
2023.06.29 - [본업/etc.] - [Git] Git이란? - #2 Git의 주요 특징
Git의 객체
https://git-scm.com/book/en/v2/Git-Internals-Git-Objects
Git은 프로젝트의 변경 사항을 추적하고 관리하기 위해 내부적으로 .git/objects
디렉토리에서 네 가지 유형의 객체(object)를 관리한다.
이객체들은 Git의 핵힘적인 작동 방식을 이해하는데 중요한 역할을 한다.
각각의 객체 유형은 개별적인 파일로 존재한다.
(예를 들어 한 번의 커밋과 두 개의 blob 객체는 총 세 개의 파일로 존재하게 된다)
각각의 객체는 고유의 SHA-1 해시를 가지며 이 해시를 통해 식별 및 참조된다.
즉, 객체의 내용이 같다면 해시의 내용도 같은 셈이다.
Blob 객체
add
명령어가 수행되는 시점에 생성- 순수하게
add
된 컨텐츠의 내용만을 저장 - 하지만 이름이나 파일 타입(확장자) 등의 메타 데이터는 저장되지 않음
Commit 객체
commit
명령어가 수행되는 시점에 생성- 커밋에 대한 정보(부모 커밋, 작성자, 실행자, 날짜, 메시지 등)와 커밋 시점에 생성된 Tree 객체의 이름(id)을 저장
- Tree 객체를 통해 해당 커밋에서의 디렉토리 및 파일의 상태를 확인할 수 있음
Tree 객체
commit
명령어가 수행되는 시점에 생성- 커밋 시점의 디렉토리와 파일 상태를 표현, 이를 위해 추가적은 Tree 객체와 Blob 객체를 가질 수 있음
Tag 객체
tag
명령어가 수행되는 시점에 생성- 태그 시점의 commit 객체명, 태그 이름, 태그 생성자, 태그 메시지 등을 저장
'본업 > etc.' 카테고리의 다른 글
[NGINX] Nginx 서비스 중단 및 제거 (0) | 2023.09.07 |
---|---|
[Git] Git이란? - #2 Git의 주요 특징 (0) | 2023.06.29 |
[Git] Git이란? - #1 Git의 설계 목표 (0) | 2023.06.26 |
[Git] 버전 관리 시스템의 종류 (0) | 2023.06.22 |
[Git] 버전 관리 시스템(Version Control System)의 역사? (2) | 2023.06.19 |