결과와 변경 이유를 남기기
버전 관리 시스템은 어느 시점의 내용과 이전 상태의 관계를 기록한다. 변경 설명은 왜 수정했는지를 이해하고 나중에 문제를 추적하는 데 도움을 준다.
파일 이름 뒤에 최종과 날짜를 계속 붙이는 방식보다 일관된 이력과 비교 도구를 제공할 수 있다. 다만 무엇을 언제 기록할지는 사용자의 작업 방식에 달려 있다.
동시에 진행되는 작업
분기는 공통된 상태에서 서로 다른 작업을 진행하게 한다. 병합은 변경들을 통합하는 과정이며 같은 부분이 다르게 바뀌면 충돌을 해결해야 할 수 있다.
텍스트 충돌이 없다고 의미상 문제가 없는 것은 아니다. 서로 다른 파일의 수정이 동작을 깨뜨릴 수 있어 통합 뒤 검토와 검증이 필요하다.
기록과 공유의 차이
로컬에 변경을 기록하는 일과 다른 사람의 저장소에 전송하는 일은 시스템에 따라 분리될 수 있다. 커밋과 푸시가 같은 동작이라고 가정해서는 안 된다.
공유된 이력을 다시 작성하면 다른 작업자의 기준과 참조가 달라질 수 있다. 어떤 기록을 보존하고 어떤 변경 절차를 사용할지 협업 규칙이 필요하다.
백업과 접근 제어
버전 관리가 과거 내용을 보관해도 작업 중인 미기록 파일과 외부 자원은 빠질 수 있다. 별도의 장애 대응과 백업을 대체한다고 단정할 수 없다.
비밀을 한 번 이력에 넣으면 현재 파일에서 지워도 이전 버전에 남을 수 있다. 공개 전에는 현재 상태뿐 아니라 전송되는 이력의 범위를 확인해야 한다.