폴더별로 버전을 묶어서 하나하나 관리해 왔다. 개선을 하기 위해서 CVS가 등장했다.
CVS(Centralized Version Control)
서버에 히스토리를 관리해서 가가의 개발자들이 원하는 내용을 서버에 업뎃해서 즉각적으로 동기화가 이루어지는 시스템 -> 서버에 문제가 생길때 업뎃이 안됨, 오프라인의 경우에도 일을 못함
DVC(Distributed Version Control)
서버에만 히스토리에 정보가 있는것이 아니라 모든 개발자들이 동일한 히스토리를 가지고 있음 ->서버가 다운되거나 오프라인의 경우에도 가각의 개발자들이 동일한 히스토리를 가지고 있으므로 위의 상황에서도 대처가 가능하다
-> Private Server(회사나 개인서버)/Cloud Server(github/Bitbucket)
깃이란
VCS(Version Control System)중에 하나로, 크고 작은 프로젝트를 버전별로 빠르고 편리하게 관리할 수 있도록 도와주는 도구.
탄생배경
Linux Kernel Team에서 버전관리를 위하여 BITKEEPER을 도입하지만 빗킵퍼측에서 유료선언을 한다. 리눅스측에서 GIT을 만들어서 탄생했다.
delta-based
각각의 버전마다 변경된 내용만 저장 버전별로 달라진 내용만가지고 있어서 버전을 변경할때 개선과 적용하는데 시간이 많이 발생된다.

stream of snapshots (GIT이 데이터를 다루는 방식)
프로젝트의 전체적인 내용을 스냅샵해서 가지고 있다. 전체버전을 가지고 있기때문에 버전이동과 적용이 쉽다. 스냅샷은 변경되지 않은 파일들의 참조(refernce)를 하고있어 굉장히 가볍다.

사람들이 가장 많이 사용
오픈소스와 무료
Branching and Merging
Branching Model
브랜치는 분기모델이라고 하는데, 원래 코드와는 상관없이 독립적으로 개발을 할 수 있는 작업영역(master)을 말한다.

Merging
여러게의 브랜치를 합치는 것을 Merging이라고 한다.

Staging Area

참고
깃, 깃허브 이건 알고 사용하자
깃.깃허브. 기초개념 잡아드림
깃 공식사이트
깃 공식사이트 - 깃에 대한설명