Post

Git & Github의 차이

Git과 GitHub는 이름이 비슷하기 때문에 많은 사람들이 혼동하는 용어이지만 실은 서로 다른 목적으로 사용됩니다. 그 차이에 대해 아래에서 자세히 다뤄보도록 할게요!

1. Git이란?

▶ 먼저 Git은 분산 버전 관리 시스템(DVCS)입니다.
2005년 리누스 토르발스가 리눅스 커널 개발을 위해 만들었으며, 개발자들이 소스 코드를 효율적으로 관리하고 협업할 수 있도록 도와주는 시스템입니다.

Git의 특징

  1. 분산 버전 관리
    Git은 분산형 구조로, 모든 개발자가 로컬 저장소를 가지고 있으며 중앙 서버 없이도 작업이 가능합니다. 이는 네트워크 연결이 없어도 개발 작업을 이어갈 수 있다는 장점이 있습니다.
  2. 빠른 성능
    Git은 소스 코드의 변경 사항을 빠르고 효율적으로 관리합니다. 각 커밋은 스냅샷으로 저장되어, 변경 사항을 추적하고 복구하기 쉽습니다.
  3. 브랜칭과 병합
    Git의 강력한 브랜칭 기능은 개발자가 독립된 환경에서 새로운 기능을 개발하고, 이를 메인 프로젝트에 병합할 수 있게 한다는 점입니다. 덕분에 병합 충돌을 최소화하고, 다양한 실험을 쉽게 시도할 수 있습니다.
  4. 히스토리 관리
    Git은 프로젝트의 모든 변경 사항을 기록하여, 이전 버전으로 되돌리거나 특정 시점의 상태를 확인할 수 있습니다.

GitHub란?

▶ GitHub는 Git의 리포지토리를 호스팅하는 웹 기반 서비스입니다.
주로 Git의 버전 관리 기능을 기반으로하여 협업과 소셜 코딩을 위한 다양한 도구와 기능을 제공하는 GitHub는 2008년 설립되었으며, 2018년 마이크로소프트에 인수되었습니다.

Github의 특징

  1. 원격 리포지토리 호스팅
    GitHub는 원격 리포지토리를 제공하여, 개발자가 로컬 Git 리포지토리를 GitHub에 푸시하여 백업하고, 다른 사람들과 쉽게 공유할 수 있습니다.
  2. 협업 도구
    GitHub는 이슈 트래커, 풀 리퀘스트, 코드 리뷰, 위키, 프로젝트 보드 등 협업을 지원하는 다양한 도구를 제공합니다. 이를 통해 개발자들은 프로젝트의 버그를 관리하고, 새로운 기능을 제안하며, 코드 리뷰를 통해 품질을 향상시킬 수 있습니다.
  3. 소셜 네트워크 기능
    GitHub는 개발자들이 다른 프로젝트를 팔로우하고, 스타를 통해 관심을 표시하며, 포크를 통해 자신의 리포지토리로 복제할 수 있는 소셜 기능을 제공합니다. 이는 개발자 간의 네트워킹과 협업을 촉진합니다.
  4. CI/CD 통합
    GitHub Actions를 통해 연속 통합/연속 배포(CI/CD) 파이프라인을 설정할 수 있습니다. 이는 코드 변경 시 자동으로 빌드, 테스트, 배포를 가능하게 합니다.
  5. 패키지 관리
    GitHub Packages를 통해 다양한 패키지 관리자와 통합하여 패키지를 호스팅하고 배포할 수 있습니다.

Git과 Github의 차이점

  1. 기능적 차이
    Git은 버전 관리 도구로, 소스 코드의 변경 사항을 추적하고 관리하는 데 초점을 맞춥니다. 반면, GitHub는 Git 리포지토리를 호스팅하고, 이를 중심으로 협업과 소셜 기능을 제공합니다.
  2. 설치와 사용
    Git은 로컬 컴퓨터에 설치하여 사용하는 도구입니다. 개발자는 터미널이나 명령줄 인터페이스를 통해 Git 명령어를 사용합니다. GitHub는 웹 기반 플랫폼으로, 웹 브라우저를 통해 접근하고 사용합니다.
  3. 주요 목적
    Git은 주로 버전 관리를 위해 사용되며, 코드의 히스토리를 관리하고, 브랜칭과 병합을 쉽게 합니다. GitHub는 협업과 공유에 중점을 두어, 개발자들이 공동으로 작업할 수 있는 환경을 제공합니다.

결론적으로, Git은 버전 관리 시스템이고, GitHub는 Git 리포지토리를 호스팅하고 협업 기능을 제공하는 플랫폼입니다. 이 두 가지를 함께 사용하면 소스 코드 관리와 협업을 효과적으로 할 수 있습니다.


이렇게 오늘은 블록체인에 대해 알아봤는데요,
결론적으로 Git은 버전 관리 시스템이고, GitHub는 Git 리포지토리를 호스팅하고 협업 기능을 제공하는 플랫폼입니다.
이 두 가지의 차이를 이해하고 함께 사용하면 소스 코드 관리와 협업을 효과적으로 할 수 있겠죠?
그렇다면 저는 다음에 또다른 면접에 대비한 내용을 들고오도록 하겠습니다 😁!

This post is licensed under CC BY 4.0 by the author.