Scott Chacon & Ben Straub 님의 "Pro Git" 책을 정리한 포스팅 입니다.
1. Git 기초
차이가 아니라 스냅샷
델타 기반 버전관리 시스템
- 파일의 변경 사항만을 시간순으로 관리하면서 버전관리를 수행합니다.
- 제품 : CVS, Subversion, Perforce 등
스냅샷 기반 버전관리 시스템
- 시간순으로 파일 시스템의 '스냅샷'으로 관리한다는 것을 의미합니다.
- 커밋할 때마다, 변경된 파일 전체를 저장합니다.
- 변경사항이 없는 파일은 링크만을 저장합니다.
거의 모든 명령을 로컬에서 실행
- 오프라인 상태이더라도 작업이 가능합니다.
- 로컬 저장소에서 작업하고 원격 저장소에 동기화 가능
Git의 무결성
체크섬
- 고유 식별자 (fingerprint 역할)
- 데이터 무결성 검증을 위해 사용되는 값입니다.
- 파일이나 데이터 덩어리의 내용을 대표하는 짧은 코드나 숫자입니다.
- 원본 데이터의 변경 없이는 체크섬 값이 변경될 수 없습니다.
- 해시함수
- SHA-1 해시함수를 사용하여 체크섬을 생성합니다.
- 40자 길이의 16진수 문자열 (24b9da6552252987aa493b52f8696cd6d3b00373)
Git은 데이터를 추가할 뿐
- 무엇을 하든, 데이터를 git 데이터베이스에 추가합니다.
- 되돌리거나 삭제할 수 있는 방법은 없습니다.
디렉토리
Working Directory
- 프로젝트의 특정 버전을 Checkout 한 것입니다.
- 실제 파일들이 사용자가 작업할 수 있는 상태로 존재하는 디렉토리를 말합니다.
- git directory에 압축된 데이터베이스 내용을 기반으로 Working Directory가 만들어집니다.
Git Directory (.git)
- 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말합니다.
- 모든 파일의 버전 히스토리를 저장합니다. (커밋 로그, 브랜치, 태그 등)
- Clone
- 해당 프로젝트의 Git Directory가 만들어집니다.
- 원격 저장소의 모든 데이터와 이력을 로컬 컴퓨터로 가져오는 것을 포함합니다.
Staging Area (index)
- 변경사항 준비 공간 : 곧 커밋할 파일에 대한 정보를 저장합니다.
- 선택적 커밋 : 선택적으로 일부 변경사항만 staging area에 추가하여 커밋할 수 있습니다.
- git directory에 있습니다.
.
파일의 상태
Modified
- 파일을 수정하고, 아직 로컬 데이터베이스에 커밋하지 않은 상태
Staged
- 수정한 파일 중, 곧 커밋할 것이라고 표시한 상태
Committed
- 파일이 로컬 데이터베이스에 저장된 상태
출처
'VCS > Git' 카테고리의 다른 글
[Pro Git] 2-2. Git의 기초: 수정하고 저장소에 저장하기 (1) | 2024.01.14 |
---|---|
[Pro Git] 2-1. Git의 기초: Git 저장소 만들기 (1) | 2024.01.14 |
[Pro Git] 1-6. 시작하기: Git 최초 설정 (1) | 2024.01.13 |
[Pro Git] 1-2. 시작하기: 짧게 보는 Git의 역사 (1) | 2024.01.13 |
[Pro Git] 1-1. 시작하기: 버전 관리란? (0) | 2024.01.13 |