Git과 Github의 차이점
많은 사람들이 Git과 Github이 같은 것이라고 생각한다. 하지만 Git은 Github과 동일하면서 다르다.
Git은 개인 컴퓨터에서 돌아가는 Version Control System이다. Git을 사용하기 위해서는 개인 계정을 등록할 필요도 없으며 인터넷을 연결할 필요도 없다. 반대로 Github은 Github라 불리는 회사에서 서비스하고 있는 서버에 올라간 Git 이기 때문에 사용하기 위해 개인 계정을 등록해야 하며, 인터넷에 연결되어야 사용할 수 있다.
즉, Github는 Git 소프트웨어를 지원하는 일종의 클라우드 서비스이다. 우리가 휴대폰이나 컴퓨터에서 클라우드를 사용할 때 우리의 기기에 파일을 저장해놓으면 우리의 기기에서 사용하기 위해서는 계정이나 인터넷이 필요 없다. 하지만, 클라우드에 올라간 파일은 사용하기 위해 계정과 인터넷이 필요하다. Github을 클라우드 서비스 관점에서 이해하면 쉽게 이해할 수 있다.
Github은 클라우드 서비스인 만큼 다양한 추가적인 서비스를 제공하는데 Git과 Github의 차이점은 다음 4가지 관점에서 살펴보도록 하자.
- Local Git과 Remote Git
- UI를 지원하는 Github
- PR 기능을 지원하는 Github
- Github의 다양한 기능들
Local Git과 Remote Git
개인 컴퓨터에서 사용하는 Git을 Local Git이라 부르며, Github이나 Gitlab과 같은 클라우드에 저장하는 Git을 Remote Git이라 부른다. 로컬에 저장되는 Git은 공유가 되지 않으며, 공유를 위해서는 Remote Git 서비스를 제공하는 Github이나 Gitlab에 올려야 한다.
UI를 지원하는 Github
Local Git은 기본적으로 터미널을 사용한다. 따라서 Local Git은 File Managing을 위해 UI 요소가 지원되지 않는다. 반대로 Github은 Git을 터미널로 이용할 수 있는 방식 뿐만 아니라 github.com 웹사이트를 통해 UI적으로 사용할 수 있도록 돕는다.
*물론 로컬 Git을 시각적으로 조작할 수 있는 서비스를 제공하는 GitKraken, SourceTree, Intellij(IDE 내부에서 제공) 와 같은 프로그램들도 있다.
PR 기능을 지원하는 Github
PR이란 Pull Request의 약자로 특정 코드 버전에 코드를 통합할 수 있도록 다른 개발자들에게 리뷰를 요청하는 기능이다. Git에는 기본적으로 PR기능이 없으며, PR 기능은 코드 리뷰를 돕기 위해 Github에서 만들어낸 기능이다. 같은 기능으로 Gitlab의 MR(Merge Request) 기능 등이 있다.
Github의 다양한 기능들
Git 자체는 코드의 버전 관리를 위한 시스템이지만 Github은 Git 위에 CI/CD를 강화하기 위해 Git Action 과 같은 자동 빌드 및 배포 기능, 프로젝트 매니징을 위한 칸반 보드 기능 등을 넣었다. 따라서 Github은 Git을 서비스하지만 추가적인 여러 기능들을 지원하는 시스템이라 보는 것이 맞다. 따라서 Github은 Git을 포함하는 클라우스 서비스라 할 수 있다.