[Git] 깃이란?

공수정·2021년 10월 23일
0

git

목록 보기
1/7
post-custom-banner

1. 버전 관리

  1. 버전 관리 : 파일 변화를 시간에 따라 기록했다가, 나중에 특정 시점 버전을 다시 꺼낼 수 있는 시스템
  2. 특징
    • 복원 : 파일을 이전 상태로 되돌릴수 있음
    • 비교 : 시간에 따라 수정 내용을 비교해볼 수 있음
    • 추적 : 누가 문제를 일으켰는지 추척할 수 있음
    • 복구 : 파일을 잃어버렸을 때 복구할 수 있음
  3. 예시 : 20210104.ppt, 20210107.ppt 등 처럼 파일 복사를 이용 한 버전 관리, 이 외에도 SVN도 있음

2. 탄생 배경

초기 리눅스 개발 시,
1991~2002 : 압축 파일로 버전 관리
2002 : BitKeeper라는 DVCS를 도입
->그러나 문제가 생기게 되면서 직접 개발을 하게 됨
2005 : 무료 DVCS "Git"탄생
2008 : 세계 최대 오픈소스 호스팅 "Github"탄생
2014 : Git 2.0 릴리즈

3. 데이터 관리 방법

  1. SVN : 파일 기준으로 파일의 변화를 관리

    version1에 파일 A,B,C가 있다고 할 때,
    version2에 저장되는 것은 version1과 비교해서 변경된 파일들의 변경된 값만 저장됨(A의 변경내용, C의 변경내용)

  2. Git : 시간 기준으로 프로젝트 스냅샷을 관리

    version1에 파일 A,B,C가 있다고 할 때,
    version2에 저장되는 것은 변경된 파일 A,C의 스냅샷과 변경되지 않은 파일B의 스냅샷이 저장됨

4. Git의 특징

  1. Git 데이터 베이스
    1. Git은 어떤 작업을 하던지, 데이터베이스에 데이터를 "추가"하기만함
    2. 데이터베이스에 추가된 데이터는 절대로 삭제할 수 없음
    3. 한번 커밋한 데이터는 거의 잃어버리지 않음
  2. 체크썸(Checksum)
    1. Git이 데이터를 관리하는 기본 단위
    2. 파일 내용 또는 디렉토리 구조에 SHA-1 해시 알고리즘을 적용하여 체크섬을 계산
    3. 체크섬은 40자 길이의 16진수 문자열
    4. 실제로 Git은 파일을 이름으로 저장하지 않고 해시로 저장

CVCS(중앙집중식 버전 관리)와 DVCS(분산 버전 관리)

  1. CVCS(중앙집중식 버전 관리)
    1. 예시 : SVN
    2. 구조
    3. 클라이언트가 중앙서버로부터 파일을 받아서 사용
    4. 특징 : 중앙서버의 하드에 문제가 생겨서 자료가 삭제 되었다면 복구할 방법이 없다.

  2. DVCS(분산 버전 관리)
    1. 예시 : Git
    2. 구조
    3. 클라이언트가 마지막 스냅샷을 받아오는 것이 아니라 저장소 전부를 복제
    4. 서버에 문제가 생기면 아무 클라이언트의 복제물로 서버를 복원할 수 있다.

출처
1. 사내세미나 내용
2. 형상관리의 종류

profile
계속해서 공부하는 개발자입니다 :)
post-custom-banner

0개의 댓글