2024. 5. 12. 22:07ㆍCS/git
버전 관리란, 파일의 변화를 시간의 따라 기록하는 것을 말한다. 이것이 필요한 이유는 특정 시점의 버전을 다시 꺼내올 필요가 종종 있기 때문이다. 이를 위해서는 VCS(Version Control System)를 사용하는데, 대표적인 VCS이자 개발자들이 가장 많이 사용하는 것으로 git이 있다.
버전 관리의 개념
나무위키에 버전 관리를 검색해 보면, 아래와 같은 재밌는 사진이 나온다. 버전 관리 없이 문서를 관리하는 경우이다.
버전 관리를 통해서는 변경점 관리, 브랜치를 이용한 여러 버전 개발, 백업 및 복구, 협업 등의 작업을 수행할 수 있다.
로컬 버전 관리
로컬 VCS는 간단한 DB에 파일의 변경 정보를 관리하는 것이다. 간단하게 구현할 수 있지만 협업 및 복구가 어렵다.
대표적인 로컬 VCS로, RCS(Revision Control System)이 있는데, 파일의 변경 부분에 대한 데이터를 담은 Patch Set을 저장하는 방식이다.
중앙집중식 버전 관리(CVCS)
CVCS는 다른 개발자와 협업을 해야 하는 경우 사용된다. Central VCS Server 라고 하는 중앙 서버를 구도, 클라이언트가 중앙 서버에서 파일을 checkout하여 사용하는 구조이다.
대표적인 CVCS로는 CVS, Subversion, Perforce가 있다. 그러나, 중앙 서버에 오류가 발생할 경우 협업이 중지되거나 프로젝트 전체가 사라지는 단점이 있다.
분산 버전 관리 시스템(DVCS)
DVCS는 중앙 서버에서 클라이언트가 checkout할 때, 히스토리까지 한꺼번에 복제되는 구조이다. 즉, 중앙 서버가 고장나도 클라이언트의 clone 하나만 가져와도 백업이 가능하다.
대표적인 DCVS로는 git, Mecurial, Bazaar, Darcs 등이 있으며 가장 많은 개발자가 사용하는 것은 git이다.
'CS > git' 카테고리의 다른 글
유용한 라이브러리 시각화 툴 소개 (Pyreverse) (1) | 2024.08.19 |
---|---|
git의 세 가지 영역과 커밋(commit) (feat. 쿠팡) (0) | 2024.05.13 |