Git
버전 관리 시스템으로 DVSC(분산 버전 관리 시스템)에 속한다. 로컬 저장소는 서버 저장소의 히스토리를 전부 복사하며 서버 저장소에 문제가 생기면 로컬 저장소로 언제든 복원 가능하다.
Git의 특징
- 각 버전을 스냅샷으로 저장해 보관
- Git은 오직 데이터를 추가
한번 커밋되어진 파일을 삭제할 수 있는 방법이 없다. → 데이터를 잃어버릴 수 없다. - 거의 모든 명령을 로컬에서 진행
CVSC(중앙집중식 버전 관리 시스템)에서는 네트워크 속도에 영향을 받지만 git은 로컬 저장소에 모든 히스토리, 버전이 있기에 서버에 접근할 일이 거의 없어 대부분의 명령을 로컬에서 실행 → 속도가 빠름 - 오브젝트 파일을 해시 값으로 저장
Git의 세가지 단계
- git directory(Repository)
프로젝트의 메타데이터와 객체 데이터베이스가 저장되어 있다. 또한 프로젝트의 모든 버전이 스냅샷으로 저장되어 있다. 다른 저장소를 Clone하면 git 디렉터리가 생성된다. - Staging Area(Index)
git 디렉터리 안에 있으며 다음 버전에 추가할 변경사항은 Staging Area의 스냅샷에 반영된다. 커밋 시 이 스냅샷은 영구적인 스냅샷으로 저장된다. - Working directory
프로젝트가 가리키고 있는 특정 버전을 checkout한 디렉터리이다.
Git의 파일 상태
Working directory의 모든 파일은 아래의 상태 중 하나를 가지고 있다.
- Untracked (버전 관리되지 않은 파일)
- Tracked (버전 관리되는 파일)
- Unmodified (수정되지 않음)
- Modified (수정됨)
- Staged (Staging Area의 스냅샷에 반영되어 커밋 시 다음 버전에 추가)
Git의 핵심
git의 기능은 많다. push/fetch/pull 기능, 브랜치와 merge 기능, 태그 기능 등등.. 여러 기능들이 있지만 가장 기본은 다음과 같다.
- Working directory에서 파일 수정
- git add/rm/mv로 commit시 다음 버전에 추가할 변경사항을 Staging Area의 스냅샷에 반영
- git commit으로 신규 버전 생성(Staging Area의 스냅샷을 기반으로 영구적인 스냅샷인 커밋 객체 생성)
'CM > Git' 카테고리의 다른 글
Git 히스토리 삭제 (0) | 2024.05.31 |
---|---|
Git 원격 저장소 (0) | 2022.08.04 |
Git branch (0) | 2022.08.01 |
Git 원리 (add,commit,status) (0) | 2022.08.01 |