내부구조

Git 개체 (Objects)
Tree 개체
커밋 개체
개체 저장 방식
Hash와 Map

.git 구조

graph TD
    A[".git"]

    %% --- 1단계: 주요 파일 및 디렉토리 ---
    A --> B["HEAD (현재 브랜치 포인터)"]
    A --> C["index (스테이징 영역)"]
    A --> D["objects/ (객체 데이터베이스)"]
    A --> E["refs/ (브랜치, 태그 포인터)"]
    A --> F["logs/ (활동 기록)"]

    %% --- 2단계: 하위 구조 ---
    D --> G["xx/yyyy... (압축된 객체)"]
    E --> H["heads/ (로컬 브랜치)"]
    F --> I["HEAD (나의 모든 이동 기록)"]
    F --> J["refs/heads/ (브랜치별 기록)"]

    %% --- 3단계: 브랜치 상세 ---
    H --> K["main (최신 커밋 해시)"]
    J --> L["main (main 브랜치 기록)"]

    %% --- 스타일링 ---
    style A fill:#f9f9f9,stroke:#333,stroke-width:2px

SHA 해시 (SHA-1)

관련 명령어

Index 파일 구조 (.git/index)

헤더 (12바이트)**:

파일 엔트리 (가변 길이):

관련 명령어

zlib 라이브러리 (압축)