버전 관리 시스템이란 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 불러올 수 있는 시스템을 의미합니다.
VCS를 사용하면 선택한 파일을 이전 상태로 되돌릴 수 있고, 변경 사항을 비교하고, 변경한 사람 및 변경시기를 추적할 수 있습니다. 또한 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있습니다.
Git과 Github의 차이
Git은 형상 관리 도구(Configuration Management Tool)중에 하나입니다. 형상 관리 도구는 다른 말로 버전 관리 도구라고도 합니다.
Git Linux를 만든 Linus Torvlads에 의해 만들어졌습니다.
Git은 소스코드의 버전을 로컬에서 관리하도록 돕는 버전 관리 프로그램이며, 로컬에서 프로젝트의 기록을 스스로 관리할 수 있도록 해줍니다. Git은 로컬 저장소를 사용하기 때문에 다른 개발자와 실시간으로 작업을 공유할 수 없습니다.
Github는 git 저장소를 관리하는 클라우드 기반 호스팅 서비스입니다. git 저장소 호스팅 서비스는 클라우드 기반으로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하여 제공합니다. 또한 클라우드 서버에 소스 코드를 올리기 때문에 한 프로젝트에 여러 명의 사람이 참여하여 버전 제어 및 공동 작업이 가능합니다.
Git은 버전 관리 프로그램이고 Github는 버전 관리, 소스코드 공유, 분산 버전 제어 등등이 가능한 원격 저장소입니다.
코드의 변화
깃은 개발 중인 코드의 이력을 만들 수 있습니다. 깃이 코드 변화를 기록하는 것을 커밋(commit)이라고 합니다.
영어로 commit은 여러 의미가 있습니다.
그중 깃의 동작과 가장 유사한 의미는 ~를 적어 두다입니다.
즉, 커밋은 의미 있는 변경 작업들을 저장소에 기록하는 동작입니다.
개발 과정에서 소스 코드는 수없이 수정됩니다.
이러한 코드의 수많은 수정이 발생되는 이유는 개발 목적을 달성하는 위한 작업입니다.
원격과 로컬의 개념
원격 저장소(Remote Repository): 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소입니다.
로컬 저장소(Local Repository): 내 PC에 파일이 저장되는 개인 전용 저장소입니다.
평소에는 내 PC의 로컬 저장소에서 작업을하다가 작업한 내용을 원격 저장소에 업로드할 수 있습니다. 물론 원격 저장소에서 다른 사람이 작업한 파일을 로컬 저장소로 가져올 수도 있습니다.