
Git은 형상관리도구중 하나로 , 소스코드를 효율적으로 관리할 수 있게 해주는 분산형 버전 관리 시스템이다.
Git은 변경사항이 생길 때마다 스냅샷(Snap Shot)방식으로 변경사항에 대한 모든 정보(누가, 언제, 무엇을 등)를 기록한다. 또한, 2명 이상의 개발자들이 똑같은 파일을 동시에 수정해서 업로드를 했다고 가정해보자. 다른 도구들 경우엔 충돌이 일어날 것이다. 하지만 Git은 원본과 2명 이상의 개발자들이 수정한 파일들을 다 저장한다.
Git은 프로젝트를 협업하는 개발자들이 개인의 로컬 저장소(Local repository)에서 독립적으로 코드작업을 할 수 있다. 이렇게 작업한 결과물들을 로컬 저장소와 연결된 원격 저장소(Remote repository)로 Push를 해야 비로소 팀원들에게 공유가 되며 공동작업 또한 할 수 있다. Github이 원격저장소역할을 해준다.
*로컬저장소(Local repository): 개인 컴퓨터에 있는 저장소
*원격저장소(Remote repository): 개발자들이 서로 공유할 수 있도록 웹 서버에 존재하는 저장소

Github는 분산형 버전 관리 시스템인 Git을 기반으로한 웹 호스팅 서비스를 제공하는 사이트다.
협업하는 개발자들과 공동 작업을 하기 위해선 원격 저장소(Remote repository)가 필요한데, Github가 원격저장소 역할을 해준다.
그래서 자신의 로컬 저장소(Local repository)를 원격저장소(Remote repository)에 연결을 시켜 소스코드를 업로드 하면, 같은 프로젝트를 맡은 개발자들이 공동 작업을 진행할 수 있다.
또한 전 세계 개발자들이 사용하는 인기있는 서비스로, 수많은 오픈소스들이 공유가 된다. 오픈 소스를 참고 할 수도 있고 그 오픈 소스의 프로젝트에 참여하여 협업을 할 수도 있다.
본인의 프로젝트가 보안이 필요하거나 공개되는것이 부담스러울 수 있는데, 깃허브는 Public(공개)과 Private(비공개) 를 원하는대로 선택할 수 있으며, 나중에 언제든지 설정을 통해 바꿀 수 있다.
*웹 호스팅(Hosting): 서버를 임대해주는 것
*오픈 소스(Open source):소스코드를 공개해 누구나 제한없이 참고할 수 있는 소프트웨어
아마 Git과 Github가 같은거라고 생각하는 사람들이 있을것이다.
위에 Git과 Github에 대해서 간략하게 정리한것을 읽으면 이 두개는 분명히 다른것이며 각자의 역할이 존재한다는것을 알 수 있다.
한마디로
Git은 버전관리 시스템, GitHub는 Git을 기반으로한 소스코드들을 원격저장소에 올릴 수 있는 공간을 제공해주는 서비스다.
더 쉽게 설명하자면 Git은 음식, GitHub는 음식을 제공하는 식당이라고 생각하면 되겠다.