git이란?
- 리눅스 커널 프로젝트를 위한 버전 관리 시스템으로 개발
- Birth year : 2005
https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EC%84%9C%EB%B8%8C%EB%B2%84%EC%A0%84
git의 초기목표
- 속도 (네트워크 밒 파일 처리)
- 동시 다발적인 개발
- 책임성
- 대형 프로젝트를 요율적으로 지원
동작원리 - branch
동작원리 - snapshot
- 데이터를 가져오거나 프로젝트를 저장할 때마다 그 시점의 파일에 대해서 스냅샷을 저장
- 변경되지 않은 파일은 다시 파일을 저장하지 않고 이전에 지정한 동일한 파일을 링크
동작원리 - checksum
- 데이터를 저정하기 전에 체크섬을 구하고 이 체크섬을 통해 데이터를 관리
- SHA-1 해쉬 사용
-- 16진수 문자 40개로 구성된 문자열
-- 파일의 내용 또는 디렉토리 구조를 기반으로 계산
- 파일의 이름이 아닌 컨텐츠의 해쉬 값을 저장
-- 파일명이 변경되도 내용이 동일하면 같은 해쉬
동작원리 - Sections