여기에 속하는건 크게 CVS, SVN, GIT 이 존재함. 이 중 git에 포커스를 맞춰볼 겁니다. 다음은 VCS가 주는 3가지 효과입니다.
Backup : 백업을 통해 자료의 상태보존
Recovery : 이전의 상태로 자료를 돌릴 수 있게함.
Collaboration : 다른 사람들과 자료를 돌릴 수 있음.
VCS의 예시로는 각 연도별 매출이 있습니다. 이러한 특징을 갖은 git은 위에 vcs의 효과 3가지를 해낼 수 있습니다.
형상 관리 도구로 프로젝트를 진행하면서 소스 코드를 USB나 메일로 주고받는 건 엄청난 낭비임과 동시 보안성 위험이 있음. 이를 방지하기 위해서 Git이 사용된다. 이것을 사용한다면 소스코드를 특정 과거 시점으로 되돌리거나, 특정 시점의 변경 사항을 취소하거나, 두 버전의 소스 코드를 비교하는 등의 일이 가능합니다.
소스코드 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업하는 병렬 개발 가능
각자의 브랜치를 통한 개발 후, 본 프로그램에서 합치는 Merge가 가능.
분산버전 관리이기 때문에 인터넷 연결 필수 X.
중앙 저장소가 날라가도 복구 가능
어떤 프로젝트든 체계적 개발이 가능, 프로그램이나 패치를 배포하는 과정역시 간단. (pull을 통한 업데이트, patch를 통한 파일 배포)
Git은 매우 빠르고, 대형프로젝트나 이력이 많은 작업에 매우 합리적이다. Git은 대부분의 다른 버전관리시스템보다 빠르게 요청한다. 그리고 일부 작업에서는 더 빠르게 진행한다.
또한, 최근의 정상급 오픈소스 버전관리 시스템보다 장기간의 수정내역을 매우 효율적인 압축방법을 사용한다.
git init : 버전 관리 하고싶은 폴더에서 초기화를 하는 준비
git branch :
독립적인 공간을 만든다.
새로 만든 branch lab 1은 master와 완전히 동일한 상태를 가진 공간
브랜치에서 수정 한 후 커밋하면 lab 1 에만 기록되며 master 브랜치에는 어떤 영향도 주지 않는다.
원하는 만큼 빠르게 branch를 만들 수 있다.
실험 중 다른 브랜치로 돌가야할 때: checkout master로 head를 옮겨야한다.
이 때, cf> 작업중인 위치를 가르키는 가상의 커서가 존재하는 이를 git에서는 head라 한다.
실험 성공 : lab1 브랜치의 내용을 마스터 브랜치와 병함 한다.
실험 실패 : lab1 브랜치를 삭제한다.
checkout