Git과 GitHub는 뭐가 다를까( 초보자를 위한 쉬운 설명)

연결 문서

Git과 GitHub는 뭐가 다를까( 초보자를 위한 쉬운 설명)

프로그래밍을 시작하면서 GitGitHub라는 용어를 많이 들어보셨을 거예요. 이 두 가지가 어떻게 다른지 헷갈릴 수 있는데요. 오늘은 초보자분들을 위해 Git과 GitHub의 차이점을 항목별로 자세히 설명해드리겠습니다.

비유를 통한 이해

  • Git은 개인 컴퓨터에서 문서의 변경 이력을 관리하는 도구입니다.
    • 예를 들어, 책을 쓰면서 각 장의 수정 내용을 기록하고 싶을 때 사용합니다.
  • GitHub는 이 문서를 온라인에 업로드하고 다른 사람들과 함께 편집하는 플랫폼입니다.
    • 공동 저자들과 함께 책을 쓰면서 수정 내용을 공유하고 의견을 나눌 수 있습니다.

Git이란 무엇인가?

Git은 분산 버전 관리 시스템(DVCS)입니다.

버전 관리 시스템(VCS)이란?

  • 파일의 변경 이력을 기록하고 관리하는 시스템입니다.
  • 여러 명이 동시에 작업해도 충돌 없이 파일을 관리할 수 있습니다.
  • 언제든지 이전 버전으로 되돌아갈 수 있습니다.

Git의 주요 특징

  • 분산형 구조: 중앙 서버가 없어도 로컬에서 모든 작업이 가능합니다.
  • 빠른 성능: 대부분의 작업이 로컬에서 이루어져 속도가 빠릅니다.
  • 강력한 브랜칭과 머징: 다양한 브랜치를 만들어 실험하고, 필요할 때 합칠 수 있습니다.

Git의 주요 명령어

  • git init: 새로운 Git 저장소를 생성합니다.
  • git add: 변경된 파일을 스테이지에 추가합니다.
  • git commit: 스테이지에 있는 파일들을 커밋합니다.
  • git push: 로컬 커밋을 원격 저장소에 업로드합니다.
  • git pull: 원격 저장소의 변경 사항을 로컬에 가져옵니다.

GitHub란 무엇인가?

GitHub는 Git 저장소를 호스팅하는 웹 기반 플랫폼입니다.

GitHub의 주요 역할

  • 원격 저장소 제공: 인터넷 상에서 Git 저장소를 저장하고 관리할 수 있습니다.
  • 협업 기능 지원: 여러 개발자들이 함께 프로젝트를 진행할 수 있도록 도와줍니다.
  • 프로젝트 관리 도구: 이슈 트래킹, 코드 리뷰, 위키 등 다양한 도구를 제공합니다.

GitHub의 주요 기능

  • 리포지토리(Repository): 프로젝트의 파일과 변경 이력을 저장하는 공간입니다.
  • 이슈(Issue): 버그 리포트나 기능 개선 요청 등을 관리합니다.
  • 풀 리퀘스트(Pull Request): 코드 변경 사항을 검토하고 병합할 수 있습니다.
  • 액션(Actions): CI/CD 파이프라인을 구축하여 자동화된 작업을 실행합니다.

GitHub의 추가 기능

  • GitHub Pages: 리포지토리를 통해 정적 웹사이트를 호스팅할 수 있습니다.
  • GitHub Gist: 간단한 스니펫이나 메모를 공유할 수 있습니다.
  • 커뮤니티 참여: 오픈 소스 프로젝트에 기여하고 다른 개발자들과 소통할 수 있습니다.

Git과 GitHub의 차이점

항목 Git GitHub
정의 분산 버전 관리 시스템 Git 저장소를 호스팅하는 웹 기반 플랫폼
역할 로컬에서 파일의 변경 이력을 관리하고 버전 컨트롤을 수행 원격 저장소를 제공하고 협업 및 프로젝트 관리를 지원
사용 방법 명령줄 인터페이스(CLI)나 GUI 도구를 통해 로컬에서 사용 웹 브라우저나 Git 클라이언트를 통해 온라인에서 사용
주요 기능 커밋, 브랜치, 머지 등의 버전 관리 기능 제공 이슈 관리, 풀 리퀘스트, 코드 리뷰 등의 협업 기능 제공
필요성 버전 관리를 위해 필수적 협업과 원격 저장소 관리에 유용하지만 필수는 아님
접근성 로컬 컴퓨터에서 오프라인으로도 사용 가능 인터넷 연결이 필요

Git과 GitHub의 관계

  • 독립적 사용 가능:
    • Git은 로컬에서 혼자서도 사용할 수 있습니다.
    • GitHub는 Git 없이도 코드나 파일을 업로드할 수 있지만, Git과 함께 사용할 때 더 강력합니다.
  • 함께 사용 시 시너지 효과:
    • Git으로 로컬에서 버전 관리를 하고, GitHub를 통해 변경 사항을 공유하고 협업할 수 있습니다.
    • 팀 프로젝트나 오픈 소스 프로젝트에서 많이 사용하는 방식입니다.

실제 사용 예시

  1. 프로젝트 시작:
    • 로컬에서 git init으로 새로운 Git 저장소를 생성합니다.
  2. 코드 작성 및 커밋:
    • 파일을 수정하고 git addgit commit으로 변경 사항을 기록합니다.
  3. GitHub에 원격 저장소 생성:
    • GitHub 웹사이트에서 새로운 리포지토리를 만듭니다.
  4. 로컬과 원격 연결:
    • git remote add origin [원격 저장소 URL]로 연결합니다.
  5. 변경 사항 푸시(Push):
    • git push -u origin main으로 로컬 커밋을 GitHub에 업로드합니다.
  6. 팀원들과 협업:
    • 다른 개발자들이 리포지토리를 클론(clone)하여 함께 작업합니다.
    • 풀 리퀘스트와 이슈를 통해 코드 리뷰와 버그 수정을 진행합니다.

요약 및 마무리

  • Git은 로컬에서 파일의 버전 관리를 담당하는 도구입니다.
  • GitHub는 Git 저장소를 온라인에서 호스팅하고 협업을 지원하는 플랫폼입니다.
  • 둘은 함께 사용되며, Git으로 버전 관리를 하고 GitHub로 협업과 원격 저장소 관리를 합니다.

추가로 알아두면 좋은 것들

  • 다른 Git 호스팅 서비스: GitHub 외에도 GitLab, Bitbucket 등이 있습니다.
  • GUI 클라이언트: 명령줄이 어렵다면 Sourcetree, GitKraken 등의 GUI 도구를 사용할 수 있습니다.
  • 학습 자료:



    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • 옵시디언에서 일정 관리
  • LangChain Expression Language(LCEL)
  • 우도(likelihood)
  • python 에서 데코레이터
  • 특정 커밋으로 돌아가는 방법