Skip to content

Latest commit

 

History

History
35 lines (22 loc) · 1.96 KB

01. Git의 개념.md

File metadata and controls

35 lines (22 loc) · 1.96 KB

Git 기초 개념

차이가 아니라 스냅샷

Git은 데이터를 스냅샷의 스트림으로 취급하고 크기가 아주 작다. 파일이 달라지지 않았으면 Git은 파일을 새로 저장하지 않는다. 단지 이전 상태의 파일에 대한 링크만 저장한다.

![[01-01.png]]

Git의 무결성

Git은 데이터를 저장하기 전에 항상 체크섬을 구하고 그 체크섬으로 데이터를 관리한다. 체크섬은 Git에서 사용하는 가장 기본적인(Atomic) 데이터 단위이자 Git의 기본 철학이다.

Git은 SHA-1 해시를 사용하여 체크섬을 만든다. 만든 체크섬은 40자 길이의 16진수 문자열이다. 파일의 내용이나 디렉토리 구조를 이용하여 체크섬을 구한다. 실제로 Git은 파일을 이름으로 저장하지 않고 해당 파일의 해시로 저장한다.

Git은 데이터를 추가할 뿐

Git으로 무얼 하든 Git 데이터베이스에 데이터가 추가된다. 되돌리거나 삭제할 방법이 없다.

세 가지 상태

Git은 파일을 Committed, Modified, Staged 이렇게 세 가지 상태로 관리한다.

  • Committed: 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 의미
  • Modified: 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 의미
  • Staged: 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미

![[01-02.png]]

  • Git Directory: 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳
  • Working Directory(= Working Tree): 프로젝트의 특정 버전을 Checkout 한 것.
  • Staging Area(= Index): 단순한 파일로 곧 커밋할 파일에 대한 정보를 저장한다.

Git이 하는 일

  1. Working Tree에서 파일을 수정한다.
  2. 파일을 Staging Area에 올려서(Stage) 커밋할 스냅샷을 만든다.
  3. Staging Area에 있는 파일들을 커밋해서 Git Directory에 영구적인 스냅샷으로 저장한다.