도대체 .git 폴더가 뭐길래 계속 생기는지, 이게 왜 필요한지 궁금했다.
그런데 구글에서 찾다보니 너무 어려웠다. 그래서 쉽게 나온 블로그들 글을 찾다 찾다 나온 내용은 아래와 같다!
.git의 정체는 Git 저장소이자 git으로 추적, 관리하는 대상이다.
object 디렉토리에 객체가 생성되는 시점을 git add 명령어로 파일을 스테이징 시킬 때, staging area에 파일을 등록한다.
여기서 staging area란 직후의 commit에 어떤 것들이 포함될 지 알려주는 정보를 가지고 있는 파일을 말한다.
그러니까 즉, 우리가 github에서 프로젝트를 로컬로 클론하고 git add, git commit 이런식으로 변경사항을 만드는데, 바로 이런 변경사항을 .git 폴더에 저장을 해서, 우리가 commit하기 전으로 돌아갈 수도 있고 여러모로 관리를 하게 해주는 그런 폴더라는 거다.
git이 snapshot과도 같다고 하는데 얼마전에 virtual box를 설치하면서 스냅샷이 스크린샷도 아니고 도대체 뭘까.. 하다가 찾은 스냅샷의 정의는 "사진을 찍듯이 특정 시점의 상태를 그대로 복사해 저장하는 행위"이다.
아래의 링크는 깃의 공식 메뉴얼이다. 여기에 .git 폴더에 대한 설명이 나와있다.
https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain
When you run git init in a new or existing directory, Git creates the .git directory, which is where almost everything that Git stores and manipulates is located. If you want to back up or clone your repository, copying this single directory elsewhere gives you nearly everything you need. This entire chapter basically deals with what you can see in this directory. Here’s what a newly-initialized .git directory typically looks like:
$ ls -F1
config
description
HEAD
hooks/
info/
objects/
refs/
: object 디렉토리에서 git init 명령어를 실행하면 새 디렉토리나 기존 디렉토리에서 실행할 때 Git은 Git 저장하고 조작하는 거의 모든 것이 있는 .git이라는 디렉토리를 만듭니다 . 저장소를 백업 또는 복제하려는 경우이 단일 디렉토리를 다른 곳에 복사하면 필요한 거의 모든 것이 제공됩니다. 이 장 전체는 기본적으로 이 디렉토리에서 볼 수있는 내용을 다룹니다. 새로 초기화 된 .git디렉토리는 일반적으로 다음과 같습니다.
'Trial and Error > Git' 카테고리의 다른 글
[Git]Git에서 해시 함수를 사용하는 이유 (0) | 2021.05.25 |
---|---|
Git remote branch name change과 latest commit message change (0) | 2020.07.27 |
Git remote branch 가져오기 (0) | 2020.07.27 |