시작에 앞서 Git이 무엇인지 간단하게 정리하고 넘어가기 위해 작성해본다.
git은 당신이 개발자라면 알아야하는 가장 기본적은 버전 관리 시스템이다.
git을 이해하기위해서는 Version Control System(VCS)이 무엇인지 알아야한다.
VCS는
쉽게) 새로운 버전마다 프로그램을 생성하는 번거로움을 없애기 위한 시스템이다.
즉, 프로그램 버전 관리 시스템이다.
VCS는 CVC와 DVS 두 가지의 모델이 있는데,
먼저 Centralized Version Control System(CVCS)가 있다.
- CVCS는 말 그대로 중앙 집중 저장방식의 버전관리 시스템이다.
- 한 사람이 다른 파일을 수정하고 있으면 그 파일은 잠기게 되고, 수정이 끝나야 다른 사람이 수정할 수 있다는 특징이 있다. 가장 치명적인 단점은 중앙 서버 스토리지에 원본이 저장되어 있어 망가지게 되면 모두 날라간다.
다음으로 Distributed Version Control System(DVCS)가 있다.
- DVCS는 중앙 서버의 소스를 각 사용자는 local repository에 저장하여 소스를 수정하고 중앙 서버로 push하는 방식으로 버전관리하는 시스템이다.
- 이 방법은
- 메인 서버 저장소에 있는 모든 소스를 모든 사람이 다운받는다.
- 각 사람들은 다운받은 소스를 수정하여 저장하고 메인 서버 저장소에 push하게 된다.
- 중앙 서버는 branch를 merge하는 작업을 수행한다.
- 동시에 파일을 push하게 되면 동시성 오류가 생기는데, 이를 방지하기 위해 메인 서버에서 merge 작업을 하게 된다.
- 각 사람이 진행하는 독립적인 프로젝트를 branch라고 하는데, 이를 메인서버에서 merge하는 작업을 한다는 것이다.
- 만약 메인 서버가 깨졌을 때,
- 사람들이 가지고 있는 소스를 통해 금방 복원 가능하고, 각 local에서 작업을 하기 때문에 빠른 개발을 가능하다는 장점을 가지고 있다.
- git이 DVCS와 같은 형식으로 작동된다.
Git의 역사
- 2005년 리누스 토발즈에 의해 개발되었다.
- 2002년 Linux 시스템의 버전 관리를 위해서 BitKeeper를 사용하려 했으나 실패하여 독자적인 버전관리 시스템 개발에 나서게 되었다.
- 2주만에 개발되었고, 개발 3일만에 Git 스스로의 버전 관리를 하기 시작했다.
인터넷상에서 서로 많은 소스를 공유하기 위해 생성된 사이트가 바로 GitHub이다.
정리하자면 Git은
- 버전 관리를 편하게 할 수 있다.
- DVCS(분산 버전 관리 시스템) 형식이다.
- BitKeeper는 유료이고 도와주지 않아 리누스 토발즈가 개발했다.
- Git으로 관리되는 많은 소스를 서로 공유하기 위해 생성된 사이트가 바로 GitHub이다.
'Git' 카테고리의 다른 글
[GitHub] SSH 등록 (0) | 2022.03.23 |
---|---|
[GIT] Merge 충돌 이슈 (0) | 2021.08.07 |
[GIT] Branch (0) | 2021.08.06 |
[GIT] 저장소 만들기와 커밋(Commit)하기 (0) | 2021.08.05 |