git commit의 원리

JeongChaeJin·2021년 2월 3일
0

Git

목록 보기
7/14
  • 시작 전, file1.txt, file2.txt(file1.txt와 내용 동일), file3.txt 를 만들었다.
  • git add 를 진행하여 git 에세 이 파일 추적해줘 ! 한 상태이다.

git status

git commit의 원리

  • objects 폴더에 다른 변화가 생겼다.
  • 클릭해서 들어가보니 [commit]에 tree 라는 해쉬 key 값이 생성되었다.
  • message 도 1로 했는데 message 도 저장되어있다.
  • 이 해쉬 key 값을 보니 이전에 add 할 때 생성되었던 폴더와 이름이 동일했다.

  • 이를 클릭해보니

  • file1.txt, file2.txt, file3.txt 의 내용이 저장되어있는 해쉬 key 값이 저장되어있었다.

  • 정리해보면, commit 을 하면 "파일 내용을 가리키고있는 해쉬 key 값을 저장하고 있는 objects 폴더의 파일"을 가리키는 해쉬 key 값이 저장된다.

  • file2.txt 의 내용을 test2 로하고 Commit 을 3으로 저장해보고 다시 봤다.

  • objects 폴더에 새로운 폴더가 생기고, parent 라고하는 해쉬 key 값이 생겨져 있다. 이 parent 는 맨 처음에 commit 했을 때 생겼던 파일을 가리키는 해쉬 key 값 이다.

  • 다음 버전의 Commit 은 이전 Commit 을 가리키는 parent 해쉬 key 를 갖고 있던 것이다.

  • tree 는 이전과 동일하게 파일 내용정보를 담고있는 정보를 가리키는 해쉬 key 이다.

  • 각각의 버전(Commit)은 이 tree 라는 정보 구조를 통해서 가지고 있는 것이다. 이러한 형태를 Snap shot 한다. 사진을 찍었다 라고 한다.

추가 내용

Objects 의 3가지 구성

  • commit
  • blob : 파일의 내용을 담고 있는 것
  • tree : 파일 내용에대한 blob 정보를 담고 있는 것
profile
OnePunchLotto

0개의 댓글