git branch 원리

JeongChaeJin·2021년 2월 4일
0

Git

목록 보기
11/14
  • gistroy 로 branch 작동 원리를 파악

1. 저장소 만들기

mkdir repo
git init

2. gistory 로 확인

cd .git
gistory

3. HEAD

  • HEAD 라는 파일을 눈여겨 보자.
  • refs/heads/master 라고 하는 곳을 가리키고 있다.

git branch

  • 유추해볼 수 있는 것은 저장소를 만들게 되면, master 라고 하는 branch 를 가리키게 되고 아직은 아무 것도 있지 않다.
  • 파일을 추가해보고, 어떤 변화가 있는 지 본다.

vi file1.txt
내용 변경 후 -> wq
git add file1.txt
git commit -m 1

  • refs/heads/matser 는 어떤 해쉬 key 를 갖게되었다.

  • 타고들어가니 최신 commit 을 가리키고 있고, 그 commit 은 tree 를 가지고 있으며 그 것을 타고 들어가면 파일에 대한 내용 정보가 들어있다.

  • 이번에는 branch 를 새로 만들어서 파일을 생성해본다.

  • 여기서 알 수 있는 것은 HEAD 는 내가 어떤 브랜치인지를 가리키고 있다는 것이다.
    • refs/heads/test 는 master 에서 바뀌었다.

요약

  1. branch 는 HEAD 라는 녀석이 어떤 브랜치인지를 가리키고있다.
  2. HEAD 라는 녀석이 가리키고 있는 브랜치에 대한 정보는 refs/heads/branch_명 에 있다.
  3. 이 폴더들의 해쉬 key 값을 따라가다 보면, 최신 버전(Commit) 및 파일 저장 내용 들을 Objects 폴더를 타고 들어가 모두 확인할 수 있다.
  4. HEAD 란 녀석은 그냥 폴더였다.. git 은 이 폴더를 가지고 branch 를 관리하는 것이었다.
profile
OnePunchLotto

0개의 댓글