버전(version)이란 이전과 약간씩 다른 변화들을 구분하는 표시입니다.
버전을 표시하는데 숫자를 많이 사용하지만 꼭 숫자만 사용하는 것은 아닙니다.
예를 들어, macOS Monterey나 Window XP처럼 연도나 다른 기호를 통해 버전을 나타낼 수 있습니다.
버전을 부여하려면 소스 코드를 구별할 수 있는 의미 있는 변화가 있어야 합니다.
프로그램 개발 과정에서 수많은 코드가 변경되고 이를 안정되게 유지하기 위해 버전 관리가 필요합니다.
버전 관리 시스템(VCS, Version Control System): 코드와 콘텐츠의 변화를 관리하고 추적하는 소프트웨어입니다.
아주 간단한 데이터베이스를 사용해서 파일의 변경 정보를 관리합니다.
예) RCS(Revision Control System) - Patch Set(파일에서 변경되는 부분)을 관리하고 특별한 형식의 파일로 저장합니다.
모든 소스 코드가 한 곳에 집중되어 있습니다. 클라이언트-서버 모델이라고도 불립니다.
저장소가 여러 개 있습니다. 저장소와 그 안에 있는 히스토리를 전부 복제합니다. 즉, 저장소가 여러 개 존재합니다. 여러 저장소에 각 버전별 소스를 개별 보관합니다.
각 개발자에게 공유 가능한 저장소 사본을 제공합니다. 서버는 각 저장소 자료를 동기화하고 중개하는 역할만 수행합니다.
앞으로 학습할 git이 현재 가장 많이 사용하는 분산형 VCS입니다.