.git 디렉토리란?.git 디렉토리 생성git init
.git 디렉토리가 생성되며, 해당 프로젝트는 Git 저장소가 된다.
.git 디렉토리 주요 구성 요소
objects/objects/ab/cdef1234... 형태refs/refs/heads/), 태그(refs/tags/), 리모트 브랜치(refs/remotes/)가 여기에 저장됨indexHEADref: refs/heads/mainhooks/pre-commit, post-merge, pre-pushecho "hello git" > hello.txt
git add hello.txt
git commit -m "첫 커밋"
ls -al .git 명령어로 확인하면 다양한 파일과 폴더가 생성된 것을 볼 수 있다.

git log --oneline
출력된 커밋 해시 값은 .git/objects/ 디렉토리에 저장된 Git 객체 중 하나이다. Git은 커밋, 파일, 디렉토리를 객체로 저장하며, 이 객체는 해시 기반 디렉토리 구조로 보관된다.
ls .git/objects/<해시 앞 두 자리>
객체 내용 확인:
git cat-file -p <커밋 해시>
해당 명령어를 통해 커밋 객체의 내부를 확인할 수 있다. 내용에는 트리 객체, 작성자, 메시지 등이 포함된다.
cat .git/HEAD
# ref: refs/heads/master
cat .git/refs/heads/master
# <커밋 해시>
.git/HEAD는 현재 체크아웃된 브랜치를 가리킨다. 해당 브랜치가 가리키는 커밋은 .git/refs/heads/ 하위에 저장된다.
index: 커밋 전 단계, 스테이징 영역 역할objects: Git이 실제 데이터를 저장하는 영역. 압축된 blob, tree, commit 등의 객체로 구성refs: 브랜치나 태그 이름이 가리키는 커밋 정보를 저장HEAD: 현재 작업 중인 브랜치 또는 커밋 위치를 기록