
원하는 시점(버전)으로 이동할 수 있게 해 주는 것이 버전관리이며, 이를 도와주는 툴이 버전 관리 시스템이다. 개발자 간의 협업을 위해 전체 개발 소스를 공유하면서 개발 파트를 나눌 수 있고 같은 모듈을 개발하더라도 소스를 공유하며 개발 할 수 있기 때문에 협업 프로젝트에서는 버전 관리가 필수!

git은 본인의 코드와 그 수정내역을 기록하고 관리하도록 돕는 버전 관리 프로그램이며, 로컬에서 프로젝트의 기록을 스스로 관리할 수 있도록 해준다. git을 통해 브랜치를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능하다. 하지만 로컬 저장소를 사용하기 때문에 다른 개발자와 실시간으로 작업을 공유할 수는 없다.
github는 git 저장소를 관리하는 클라우드 기반 호스팅 서비스이다. git 저장소 호스팅 서비스는 클라우드 기반으로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하여 제공한다. 또한 클라우드 서버에 소스를 올리기 때문에 한 프로젝트에 여러 명의 사람이 참여하여 버전 제어 및 공동 작업이 가능하다.
❗❕ 한 줄로 정리하자면 Git(깃)은 버전 관리 시스템이고, GitHub(깃허브)는 Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트 이다.
| SVN | Git | |
|---|---|---|
| 사용법 | 간단함 | 다소 복잡 |
| 기능 | 간편한 기능 포함 | 다양한 기능 포함 |
| 프로세스 | 중앙 집중식 | 분산 관리식 |
| 소스 충돌 위험 | 충돌 가능성 매우 높음 | 권한 설정->충돌 위험 감소 |
| 저장소 백업 여부 | 용이하지 못함 | 매우 용이함 |
| 다수 작업 관리 | 한계점 존재 | 분산작업으로 수행 가능 |
| 작업 내용 복구 | 불편함 | Revision으로 복구 편리 |
| Branch 생성 | 불편함 | Local에서 Branch 및 Tag 생성이 편리함 |