[Git] Git이란, Git에 대한 기초 이론
대부분의 VCS(Subversion 등)가 관리하는 정보는 파일들의 목록이다.
* VCS : Version Control System
Git의 데이터는 파일 시스템의 스냅샷이라 할 수 있으며 크기가 아주 작다.
Git의 특징
- 거의 모든 명령이 로컬에서 이루어지므로 속도가 미친듯이 빠르다.
- 프로젝트의 모든 히스토리가 로컬 디스크에 저장
- 오프라인 상태에서도 커밋 가능
- Git은 파일을 이름으로 저장하지 않고 해당 파일의 해시로 저장
Git의 상태
- Modified : 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 상태
- Staged : 현재 수정한 파일을 곧 커밋할 거라고 표시한 상태
- Committed : 데이터가 로컬 데이터베이스 안에 저장된 상태
Git의 저장 단계
- Working directory : 프로젝트의 특정 버전을 Checkout한 것
- Staging area : Git directory에 위치, 곧 커밋할 파일에 대한 정보를 저장, 인덱스라고도 불림, 생략 가능
- Git directory(repository) : 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳, Git의 핵심!
다른 컴퓨터에 있는 저장소를 Clone 할 때 생성됨
① Working directory에서 파일을 수정한다.
② Staging Area에 파일을 Stage해서 커밋할 스냅샷을 만든다.
③ Staging Area에 있는 파일들을 커밋해서 Git directory에 영구적인 스냅샷으로 저장한다.
※ 출처 : Pro Git - Scott Chacon