Git은 파일의 변경사항을 추적하고 여러 명이 프로젝트를 진행할 때 각자 개발한 코드를 하나의 관리 도구에서 버전별로 관리하기 위한 형상 관리 도구입니다.
이러한 형상 관리 도구를 이용하게 되면 언제, 누가, 왜, 무엇을 수정했는지 파악할 수 있고 언제든지 이전 버전으로 되돌아갈 수 있게 됩니다.
형상 관리 도구는 중앙 집중식 버전 관리 시스템(CVCS)과 분산 버전 관리 시스템(DVCS)으로 나뉘게 되는데
중앙 집중식의 대표적인 도구가 SVN(SUBVERSION), 분산 관리식의 대표적인 도구가 Git 입니다.
- SVN은 로컬에서 Commit을 수행하면 바로 중앙 저장소에 반영이 됩니다. 그렇기 때문에 commit한 내용에 문제가 있을 경우 다른 개발자들에게 바로 영향을 미치게 되는 단점이 있습니다.
- Git은 로컬에서 Commit을 수행하면 로컬 저장소에 반영이 되고, 원하는 순간에 로컬 저장소에서 Push를 하면 원격 저장소에 반영이 됩니다.
기존 SVN은 모든 파일을 저장하는 하나의 서버를 가지고 있기 때문에 이 중앙 서버에 문제가 생길 경우 프로젝트 진행에 문제가 생기게 됩니다.
이러한 문제를 해결하기 위해 나온 것이 분산 버전 관리 시스템으로 Git이 대표적입니다.
Git은 Linux의 창시자인 리누스 토발즈가 SVN과 같은 중앙집중식 버전 관리 시스템이 리눅스 커널 관리에 적합하지 않아 불편함을 느꼈고 이를 해결하기 위해 Linux의 원활한 개발 관리를 지원하기 위한 목적으로 2005년에 개발되었습니다.
'Computer Science > Git' 카테고리의 다른 글
Git Flow(깃 플로우) - 브랜치 전략 (0) | 2020.07.19 |
---|---|
Git Commit Message Rule (2) | 2020.02.11 |
댓글