Git은 2005년 리눅스 커널의 개발을 위해서 만들게 된, 가장 대표적인 코드 형상관리 도구 중 하나이다. 한 마디로, 코드의 버전 관리 를 쉽게 해주는 녀석이다.
: 버전을 관리해주는 툴이다.
PPT를 제작할 때 `PPT_진짜최종.PPTX` 또는 `PPT_진짜최최종.PPTX` 식으로
저장해 본 경험이 한 번쯤은 있을 것이다.
이런 표식들과 마찬가지로 ***이 코드가 현재 어느 버전에 있는지*** 나타내기 위해 사용하는 도구이다.
새로운 기능을 추가해서 배포했는데 문제가 생긴 경우,
쉽고 빠르게 이전 버전의 코드로 되돌리기를 하는 것이다.
: key - vaule 스토리지를 가지고 있다.
해시 기능을 통해 파일의 콘텐츠를 전달하여
고유 키인 콘텐츠 주소를 생성하는 방식이다.
커밋을 예로 들어보면,
커밋을 만들 때 프로젝트 내용의 해시값이 key,
프로젝트 파일의 내용이 vaule로 저장된다.
$ git log
명령어를 사용해서 자세히 확인하면
커밋 해시값을 볼 수 있다. 이 해시값을 키로 조회해 보면 트리 해시값과 메타데이터가 저장되어 있고
트리 해시값을 키로 조회해보면, 블롭 해시값과 파일명이 value로 저장되어 있고 블롭 해시값을 키로 조회해보면 파일 내용이 저장
✔︎ 아래 잘 정리되어 있는 글 참고해서 읽어보자.
https://maintainhoon.vercel.app/blog/post/git_internal_behavior