위키득계정 ↗
기술

버전 관리

버전 관리기술
영문명
Version control
주요 대상
소스 코드와 문서 등
주요 기능
변경 기록, 비교, 분기, 병합
대표 모형
중앙 집중형과 분산형
관련 개념
커밋과 저장소
버전 관리는 파일과 자료의 변경 이력을 기록하고 비교하며 조직하는 활동이다. 협업의 분기와 병합을 지원하지만 저장소에 없는 정보까지 보존하거나 변경의 정확성을 자동으로 보증하지는 않는다.

결과와 변경 이유를 남기기

버전 관리 시스템은 어느 시점의 내용과 이전 상태의 관계를 기록한다. 변경 설명은 왜 수정했는지를 이해하고 나중에 문제를 추적하는 데 도움을 준다.

파일 이름 뒤에 최종과 날짜를 계속 붙이는 방식보다 일관된 이력과 비교 도구를 제공할 수 있다. 다만 무엇을 언제 기록할지는 사용자의 작업 방식에 달려 있다.

동시에 진행되는 작업

분기는 공통된 상태에서 서로 다른 작업을 진행하게 한다. 병합은 변경들을 통합하는 과정이며 같은 부분이 다르게 바뀌면 충돌을 해결해야 할 수 있다.

텍스트 충돌이 없다고 의미상 문제가 없는 것은 아니다. 서로 다른 파일의 수정이 동작을 깨뜨릴 수 있어 통합 뒤 검토와 검증이 필요하다.

기록과 공유의 차이

로컬에 변경을 기록하는 일과 다른 사람의 저장소에 전송하는 일은 시스템에 따라 분리될 수 있다. 커밋과 푸시가 같은 동작이라고 가정해서는 안 된다.

공유된 이력을 다시 작성하면 다른 작업자의 기준과 참조가 달라질 수 있다. 어떤 기록을 보존하고 어떤 변경 절차를 사용할지 협업 규칙이 필요하다.

백업과 접근 제어

버전 관리가 과거 내용을 보관해도 작업 중인 미기록 파일과 외부 자원은 빠질 수 있다. 별도의 장애 대응과 백업을 대체한다고 단정할 수 없다.

비밀을 한 번 이력에 넣으면 현재 파일에서 지워도 이전 버전에 남을 수 있다. 공개 전에는 현재 상태뿐 아니라 전송되는 이력의 범위를 확인해야 한다.

관련 문서

분산 버전 관리 / 깃 (소프트웨어) / 백업