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 하지 않음.
- 그냥 저장소를 히스토리와 더불어 전부 복제함.
- 서버가 문제가 생겨도 복제물로 다시 작업 가능
- 리모드 저장소가 존재. 많을 수도 있음.