Pro git - 1.1

Updated:

Pro git - 버전관리란?

  • 버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.
  • 파일 이전 상태, 프로젝트 통째로 이전상태로 돌릴 수 있다.
  • 시간에 따른 수정내용, 누가 문제를 일으켰는지 확인 가능
  • 파일을 잃거나 잘못 고쳤을 때도 쉽게 복구 가능
  • VCS (version control system)

1. 로컬 버전 관리

  • 최초 디렉토리로 파일을 복사하는 방법이 있었음
  • 디렉토리를 지우거나 실수로 파일을 잘못 고치거나, 잘못 복사 가능성이 있음
  • 그래서 로컬 VCS를 만듬
  • VCS는 데이터베이스를 사용해서 파일 변경 정보를 관리

  • VCS 종류 중 하나인 RCS(Revision Control System)는 Patch Set(파일에서 변경되는 부분)을 관리
  • Patch Set은 특별한 형식의 파일로 저장
  • 일련의 Patch set을 적용해서 모든 파일을 특정 시점으로 되돌릴 수 있음.

2. 중앙집중식 버전 관리(CVCS)

  • 중앙집중식 VCS

  • 다른 개발자들과 작업을 하기 위해 개발됨.

  • CVS, Subversion, Perforce 같은 시스템은 파일을 관리하는 서버가 별도 있고 클라이언트가 중앙 서버에서 파일을 받아 사용

  • 로컬 VCS에 비해 관리자가 누가 무엇을 하는지 알 수 있음
  • 그러나 중앙서버가 문제가 생기면 모든데 중단됨

3. 분산 버전 관리 시스템 (DVCS)

  • Git, Mecurial, Bazaar, Darcs 같은 DVCS에서의 클라이언트는 단순히 파일의 마지막 스냅샷을 Checkout 하지 않음.
  • 그냥 저장소를 히스토리와 더불어 전부 복제함.
  • 서버가 문제가 생겨도 복제물로 다시 작업 가능

  • 리모드 저장소가 존재. 많을 수도 있음.