햄발
Git 본문
Git
Git은 분산형 버전관리 시스템이다. (Distributed Version Control System)
리눅스의 창시자인 리누스 토발즈가 Linux 커널을 관리할 목적으로 개발되었다.
버전 관리 시스템 (Version Control System)
VCS은 사용자 프로젝트에 포함된 파일의 변경 내역을 추적할 수 있도록 하는 도구 또는 방법론이다.
소프트웨어 형상관리
SoftWare Configuration Management 줄여서 SCM이라는 단어를 쓰기도 하는데, SW 개발 및 유지 보수 과정에서 발생하는 소스코드, 문서, 인터페이스 등 각종 결과물에 대한 형상을 만들고 이를 형상에 대한 변경을 체계적으로 관리, 제어하기 위한 활동이다.
형상관리는 일반적으로 version control, revision control, source control, source code management, SCM 등 동일한 의미로 사용된다.
버전관리 시스템 (VCS) vs 분산형 버전관리 시스템 (DVCS)
SVN ( 중앙집중식 버전관리)
기존 버전 관리 시스템은 중앙 서버에 소스코드와 history를 직접 저장하는 방식
- 각 개발자만의 version history를 관리할 수 없다.
- commit 한 내용에 실수가 있을 시에 서버에(다른 개발자에게) 바로 영향을 미치게 되고 만약 중앙 서버에 문제가 생기면 협업이 불가능하다.
Git (분산형 버전관리)
분산 버전 관리 시스템은 여러 개발 PC와 저장소에 분산해서 저장하는 방식
- 모든 작업자가 원본을 가질 수 있다.
- 개별 history를 관리할 수 있기 때문에 네트워크를 사용하지 못하는 상황에서도 대부분의 작업 진행이 가능하다.