GIT이란?
버전 관리
- 작업을 진행하면서 변경, 수정 이력을 관리
버전 관리 시스템을 사용하는 이유
- 무언가 잘 못되었을때 복구할 수 있다.
- 프로젝트 진행 중 어느 지점으로 돌아갈 수 있다.
- 여러사람이 같은 프로젝트에 있을때 소스코드를 공유할 수 있다.
- 소스코드를 누가 수정했는지 추적 할 수있다.
- 소스코드의 변경 사항 추적을 통해 의미를 추론 할 수 있다.
GIT의 목표
- 빠른 속도
- 단순한 구조
- 비선형적인 개발 (동시 다발적인 브랜치)
- 완벽한 분산
- Linux 커널같은 대형 프로젝트에도 유용할 것
GIT의 기초
- 버전 간의 차이를 기록하는 것이 아니라 각 버전의 스냅샷을 기록
- 속도가 빠르다
- 용량이 크다
- 로컬 저장소에서 버전 관리가 가능 (오프라인 작업 가능)
- 온라인 상태일때 리모트 저장소에 커밋 가능
- 버전 데이터(커밋)는 체크섬으로 관리
- 같은 GIT 내부가 같은 체크섬이 생기지 않는다.
- 체크섬 : 40자 길이의 16진수 문자열
Working directory | Wtageing area | Git directory |
---|---|---|
<—checkout | the project | |
Stage fixes–> | ||
commit–> |
- Working Directory : 작업 중인 디렉토리
- Staging Area : commit할 파일에 대한 정보를 저장
- Git directory : commit한 파일의 스냅샷 정보를 저장
저장소
- 사용자가 변경한 모든 내용을 추적하는 공간
- 저장소를 은행 계좌로 비유할 수 있다.
- 저장소의 이력 -> 거래내역
- 커밋 -> 입금/출금 내역