LeanX

Git과 GitHub, 뭐가 다른가요?

Git은 내 컴퓨터에서 파일의 변경 이력을 기록하는 버전관리 도구이고, GitHub는 그 기록을 인터넷에 올려두고 백업·협업하는 온라인 저장 공간으로, 둘은 사진기(Git)와 사진 앨범 클라우드(GitHub)의 관계와 같습니다.

"수정본_최종.docx", "수정본_최종_진짜최종.docx", "수정본_최종_이번엔진짜.docx" — 한 번쯤 이렇게 파일 이름을 붙여 본 적 있으실 겁니다. 어제 지운 내용이 다시 필요해서 난감했던 경험도요. 이 모든 골칫거리를 깔끔하게 해결해 주는 것이 바로 버전관리(version control)이고, 그 대표 도구가 Git과 GitHub입니다.

버전관리를 한마디로 표현하면 무한 세이브포인트, 즉 타임머신입니다. 게임에서 어려운 구간에 들어가기 전 세이브를 해 두면, 실패해도 그 지점으로 언제든 돌아올 수 있죠. 버전관리는 내 프로젝트에 원하는 만큼 세이브포인트를 찍어 두고, 언제든 원하는 시점으로 되감을 수 있게 해 줍니다.

Git = 내 컴퓨터의 기록 도구

Git(깃)은 내 컴퓨터 안에서 동작하는 버전관리 도구입니다. 파일을 어떻게 고쳤는지 그 변화를 시점별로 기록해 둡니다. 인터넷이 없어도 됩니다. Git이 하는 일은 '언제, 무엇이, 어떻게 바뀌었는지'를 내 컴퓨터에 차곡차곡 저장하는 것입니다. 비유하자면 순간을 찰칵 찍어 기록하는 사진기입니다.

GitHub = 기록을 올려두고 협업하는 온라인 창고

GitHub(깃허브)는 Git으로 만든 기록을 인터넷에 올려 두는 웹 서비스입니다. 사진기로 찍은 사진을 구글 포토 같은 클라우드에 올려 두는 것과 같습니다. 클라우드에 올려 두면 컴퓨터가 고장 나도 안전하고(백업), 링크를 공유해 다른 사람과 함께 볼 수 있죠(협업). GitHub도 똑같습니다. 내 코드를 백업하고, 팀원과 함께 작업하고, 전 세계에 공개할 수 있게 해 줍니다.

로컬(Git)과 원격(GitHub)의 관계

내 컴퓨터 = 로컬(local)

  • 내 프로젝트 폴더가 여기에 있음
  • Git이 변경 이력을 기록·저장
  • push(올리기)로 원격에 보냄

Git = 사진기(순간을 기록)

인터넷 = 원격(remote)

  • GitHub 저장소가 여기에 있음
  • 백업·협업·공개를 담당
  • pull(내려받기)로 최신을 받음

GitHub = 클라우드 앨범(공유·백업)

Git은 내 컴퓨터에서 기록하고, GitHub는 그 기록을 인터넷에 올려 두고 함께 씁니다.

왜 배워야 하나요? — 세 가지 이유

  • 실수 복구: 코드를 엉망으로 만들어도 마지막으로 저장한 정상 시점으로 되돌릴 수 있습니다. '실행 취소(Ctrl+Z)'의 무한 버전입니다.
  • 협업: 여러 사람이 같은 프로젝트를 동시에 작업하고, 각자의 변경을 안전하게 합칠 수 있습니다.
  • 백업: 내 코드가 GitHub에 안전하게 보관되어, 노트북이 물에 빠져도 코드는 무사합니다.
구분GitGitHub
정체버전관리 '도구' (프로그램)Git 저장소를 올려두는 '웹 서비스'
위치내 컴퓨터 (로컬)인터넷 (원격)
인터넷없어도 동작필요함
비유사진기 (순간을 기록)클라우드 앨범 (공유·백업)

GitHub 말고도 GitLab, Bitbucket 같은 비슷한 서비스가 있습니다. 모두 'Git 기록을 올려두는 창고'라는 점은 같습니다. 가장 널리 쓰이고 자료가 많은 GitHub로 시작하면, 다른 서비스도 자연스럽게 쓸 수 있게 됩니다.

Git과 GitHub를 같은 것으로 착각하기 쉽지만 별개입니다. Git 없이 GitHub만 쓸 수도, GitHub 없이 Git만 쓸 수도 있습니다. '내 컴퓨터의 도구(Git)'와 '인터넷 창고(GitHub)'라는 구분만 확실히 기억하면 앞으로가 훨씬 쉬워집니다.

정리하면, Git으로 내 컴퓨터에 세이브포인트를 찍고, GitHub에 그 세이브 파일을 올려 백업하고 공유합니다. 다음 레슨에서는 이 둘을 실제로 쓰기 위한 설치와 계정 준비를 함께 해 보겠습니다.