git object 파헤치기
git은 4개의 object로 관리한다. 객체명은 SHA1로 40자리로 해쉬된다. 따라서 내용이 같으면 객체명이 같다. 객체들은 .git/objects에 위치한다. 내용을 까볼려면 git cat-file –p 객체명 으로 보면된다.
- blob
- tree
- commit
- tag
구조도
시나리오
test 디렉터리에 git init를 한 뒤에, hello.txt를 만들고 "안녕 나는 공부중이야" 를 저장한다. 그 뒤 git add하고 git commit한다. 마지막으로 git tag를 한다. 이 과정중에서 생성되는 object들을 보자.
1. blob
git add할 때 생성된다. 파일 내용이 들어 있다
2. tree
git commit할 때 생성된다. 타입과 객체명, 파일명이 기록된다.
3. commit
git commit할 때 생성된다. tree객체명, 부모commit객체명, author, committer, message를 기록한다. 이는 commit할때 git config에 있는 name과 email이 찍히는 거다.
4. tag
git tag할 때 생성된다. commit 객체명, tag이름, tagger, message가 기록된다.
출처: https://sjh836.tistory.com/74?category=695128 [빨간색코딩]
'형상관리 > Git' 카테고리의 다른 글
[이클립스] 이클립스로 Git을 사용하자 1(Git 저장소 생성 및 커밋) (0) | 2021.04.01 |
---|---|
[Git] 인텔리J에서 기존 프로젝트 깃 연동하기 (0) | 2021.04.01 |
[Git 개념] Git 분석 (0) | 2021.04.01 |
상황에 따른 git 명령어 (커밋복구, 파일명변경, 중간에 gitignore설정, 원격브랜치 삭제, merge취소, 인증) (0) | 2021.03.24 |
git ignore 추적하지 않는 파일목록 관리 (0) | 2021.03.24 |
git으로 협업(브랜치, 충돌해결, pull request) (0) | 2021.03.24 |
git의 원리 (git object를 중심으로) (0) | 2021.03.23 |
GIT의 기본 명령어 (0) | 2021.03.23 |