Git으로 별 거 못해도안해도 자주 마주치게 되는 깃저장소, 로컬저장소, 스테이지, 워킹트리 같은 용어들의 의미와 관계를 정리해보고, 우리가 명령어를 칠 때 Git에서는 어떤 일들이 일어나는지 살펴보세요.


001.png

Git은 어떤 폴더의 변천사를 기록하고 싶을 때 사용하는 도구이지요. 우리의 작업폴더에 깃저장소가 생긴다는 것은 이 기록물을 보관할 수 있는 지하실이 짜잔! 생긴다는 걸 의미합니다. 깃저장소와 함께라면 해당 폴더의 모든 역사를 기록하고 언제든 다시 꺼내볼 수 있어요.

깃저장소

깃저장소에는 index라는 파일objects라는 폴더가 있어요.

.git/index

제목을 입력해주세요_-005.png

.git/objects/

objects라는 폴더에는 여러 종류의 객체가 보관되어 있어요. 객체는 인사이드아웃의 기억구슬처럼, 뭔가를 기억할 필요가 있을 때마다 하나씩 생겨나요. 각 객체에는 고유한 키값이 있어서 Git은 이 키값을 이용해서 모든 객체를 구별하고, 포인터처럼 활용하기도 하지요. (맞아요, 78981922613b2afb6025042ff6bd878ac1994e85 요렇게 생긴 것들이요! 더 알아보려면 아래를 봐주세요~)

Untitled

004.png

002.png

003.png

우리가 git commit하는 순간, Git은 먼저 index를 바탕으로 사진을 한 장 찍어서 트리구슬을 하나 만든 다음, 그 구슬에 대한 커밋구슬을 만들어요.