여러 명이 효율적인 작업이 가능하다.
깃은 오픈소스이므로 누구나 사용할 수 있다.
여러 개발자가의 업로드할 때 버전으로 관리하여 변경 사항이 사라지는 것을 방지할 수 있다.
같은 파일에 동시에 여러 명이 접근하는 경우 각각 변경 사항을 병합할 수 있다.
쉬운 버전관리
깃은 각각의 파일을 스냅샷 형태로 저장해서 하나의 파일 명으로 여러 버전을 가질 수 있다.
여러 버전을 동시에 관리할 수 있어 데이터의 안정성이 보장된다.
git은 스냅샷 방식을 사용하지만, 기존의 버전 관리 시스템들은 델타 방식을 사용했다.
변화된 사항만 기록한다.
VCS(Version Control System) 대부분은 “델타 기반 버전 관리”로, 관리하는 정보가 파일의 목록이다.각 파일의 변화를 시간순으로 관리하면서 파일들의 집합을 관리한다.
파일에 변동이 생겼을 때, 파일의 상태 전체를 기록한다.
git은 데이터를 스냅샷의 연속으로 취급하여 크기가 아주 작다.
파일이 달라지지 않았으면 Git은 성능을 위해서 파일을 새로 저장하지 않는다. 단지 이전 상태의 파일에 대한 링크만 저장한다. Git은 데이터를 스냅샷의 스트림처럼 취급한다.
언뜻 보기엔 델타 방식이 유리해보이나,
만약 파일이 100번 수정 되었다고 할 때 53번째 수정되었을 때의 파일 상태를 불러와서 봐야 된다고 가정하면, 1번 상태부터 53번까지 변화를 모두 연산해 반영하고 53번째 파일의 전체 상태를 보여줘야 한다. 만약 다시 60번째 파일이 보고 싶어지면 또다시 1번부터 변화를 적용하여 다시 산출한다.
하지만 스냅샷 방식으로 각 버전을 통째로 기록해두면 52번째 수정된 파일을 불러오려면 바로 52번째 기록만 불러오면 된다. 버전 별로 차이점을 보고 싶으면 두 개의 스냅샷을 비교해주기만 하면 된다. 버전 관리에 있어서는 좀 더 용이한 방식이다.
가지치기와 병합
가볍고 빠르다.
깃의 작업은 대부분 로컬에서 진행된다.
다른사람과 코드를 공유할 때만 중앙 서비스에 접속하면 되므로 네트워크 속도와 상관없이 빠른 작업이 가능하다.
SubVersion(SVN)과 달리 각 개발자가 중앙 집중 서버 저장소와 독립된 상태로 작업한다.
분산 작업
여러 사람이 작업할 때 복사된 프로젝트에서 각각 작업할 수 있다.
통합 관리자를 두어 개발된 코드를 병합하는 데에 집중을 하고, 개발자는 개발에만 집중할 수 있다.
데이터 보장
체크섬이라는 검사 과정을 거친다.
24b9da6552252987aa493b52f8696cd6d3b00373
누가 어느 파일을 작업했는지 기록이 남아서 버전 관리가 편리하다
준비 영역(Staging area)
오픈소스
git에는 세 가지 영역이 있다.
git이 관리(추적) X
git이 관리(추적) O
참고 및 사진 출처