recordingbetter's devlog

Python, Django, DRF, Postgresql, AWS, Docker....

GIT이란?

20 May 2017


버전 관리

  • 작업을 진행하면서 변경, 수정 이력을 관리

버전 관리 시스템을 사용하는 이유

  • 무언가 잘 못되었을때 복구할 수 있다.
  • 프로젝트 진행 중 어느 지점으로 돌아갈 수 있다.
  • 여러사람이 같은 프로젝트에 있을때 소스코드를 공유할 수 있다.
  • 소스코드를 누가 수정했는지 추적 할 수있다.
  • 소스코드의 변경 사항 추적을 통해 의미를 추론 할 수 있다.

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한 파일의 스냅샷 정보를 저장

저장소

  • 사용자가 변경한 모든 내용을 추적하는 공간
  • 저장소를 은행 계좌로 비유할 수 있다.
    • 저장소의 이력 -> 거래내역
    • 커밋 -> 입금/출금 내역
blog comments powered by Disqus