VCS
- what?
(Distributed) Version Control System
소스코드의 변화를 추적하고 기록하기 위해서 사용하는 툴
Git
- what?
VCS툴 중 하나로 가장많이 사용
서버 저장소와 개발자 저장소가 독립적
개인 개발자보다는 팀 개발을 위한 분산 환경 코딩에 최적화- pros
빠른 속도
로컬에 레포지토리 복사가능
오프라인에서도 사용가능
commit실수를 해도 서버에 바로 영향 없음, commit수정 가능
사용자 기록 탐색 가능
쉽고 빠른 branching
무료 및 오픈소스- cons
다양한 기능을 지원하는 만큼 진입장벽이 높다.
한눈에 diff를 보기 어렵다.
Github
- what?
Git Repository를 위한 웹기반 호스팅 서비스
오픈소스의 경우 무료로 서버 제공 => 오픈소스의 성지
2019년부터 Private 소스들도 무료 업로드 가능
기본용어
- Repository: 저장소. 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장. 작업자가 변경한 모든 히스토리를 확인 가능.
- Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점.
- Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치.
- Commit: 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.
- Head : 현재 작업중인 Branch를 가리킨다.
- Branch : 가지 또는 분기점. 작업을 할때에 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶을때 Merge를 하여 작업을 한다.
- Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.