팀 개발을 위한 Git, GitHub 시작하기(정호영, 진유림 지음)으로 공부한 내용을 정리한 글입니다.
$ git hash-object <file name>
Checksum
을 확인하는 명령어Checksum
을 가짐Checksum
을 가짐git add
를 실행하면 .git
폴더에 index
파일이 생성되는데, 이 index
파일이 Git stage
임.git/objects
폴더에 파일 Checksum
의 앞 두자리를 폴더명으로 하는 폴더가 생성됨Checksum
의 앞 두자리를 제외한 문자열을 파일명으로 하는 git object
가 생성됨git object
의 파일 형식은 blob
임git commit
을 실행하면 .git/objects
폴더에 git add
때와 같은 방식으로 git object
가 생성됨 git object
는 커밋 객체임Checksum
을 가짐commit
후에 스테이지에서 파일이 제거될거라고 생각하기 쉬운데 사실을 그렇지 않음clean
하다고 함git commit
을 실행하면 .git/objects
폴더에 git tree object
도 생성됨Checksum
을 가짐Checksum
만 바뀜modified
상태가 되는데, 이는 워킹트리 속 파일 Checksum
이 스테이지 속 파일 Checksum
과 다른 경우를 말함git add
명령어를 통해 스테이지에 추가한 경우, 스테이지 속 파일의 Checksum
이 워킹트리 속 파일의 Checksum
과 같아지게 됨staged
가 됨blob
으로 관리되며, 이 blob
은 파일의 제목이나 생성 날짜와는 관계 없이 내용이 같을 경우 같은 CheckSum
을 가짐blob
으로 해당 파일들을 관리함index
파일에 Checksum
과 함께 저장되어 있기 때문에, 동일한 내용을 같는 파일을 하나의 blob
으로 관리할 수 있음branch
를 생성하면 .git/refs/heads
폴더에 branch
명으로 파일이 생성됨branch
가 가리키고 있는 커밋의 Checksum
이 저장되어 있음branch
파일에 저장된 커밋으로 HEAD
를 이동시킴HEAD
가 가리키는 커밋과 동일한 내용으로 변경함