본문 바로가기
DevOps/Git

[Git] Git이란 무엇인가요?

by okbear3 2025. 4. 13.

 

개발을 하다 보면 한 가지 이상의 변경사항을 여러 사람과 함께 나누어 작업하고, 작업 이력을 관리해야 하는 경우가 발생합니다.

이런 상황에서 가장 널리 사용되는 분산 버전 관리 도구가 바로 Git 입니다.

이번 글에서는 Git이 무엇인지, 왜 필요한지에 대해 소개하고 이어서 Git을 사용하는 방법에 대한 글을 작성합니다.

 


 

Git 이란 무엇인가요?

Git은 소스 코드의 변경 이력을 효율적으로 관리할 수 있는 분산 버전 관리 시스템(DVCS)입니다.
개발 도중 발생하는 수많은 변경 사항을 기록하고, 이전 상태로 되돌리거나 다른 사람과 공유하는 데에 매우 유용합니다.

대부분의 버전 관리 시스템은

  • 이전 버전을 확인하거나,
  • 변경 내용을 비교하고 되돌리거나,
  • 여러 개발자 간에 작업 내용을 병합하고 공유하는 기능을 제공합니다.

Git 역시 이러한 기능을 제공하는 수많은 버전 관리 도구 중 하나이며,
다른 예로는 Subversion(SVN), CVS, Mercurial 등이 있습니다.

Git은 2005년, 리눅스 커널을 개발하던 리누스 토발즈(Linus Torvalds)에 의해 처음 만들어졌습니다.
현재는 GitHub, GitLab, Bitbucket 등 다양한 플랫폼을 통해 전 세계 대부분의 소프트웨어 프로젝트에서 표준 도구로 사용되고 있습니다.

 

Git을 왜 사용해야 하나요?

Git에서 제공하는 기능은 아래와 같습니다.

  • 변경 이력 추적 : 누가, 언제, 어떤 변경을 했는지 커밋 단위로 명확하게 확인할 수 있습니다.
  • 되돌리기 기능 : 이전 상태로 되돌아가거나, 실수를 복구할 수 있는 기능이 내장되어 있습니다.
  • 분산 구조 : 중앙 서버 없이도 로컬에서 전체 이력을 관리할 수 있습니다.
  • 브랜치 기반 개발 : 기능 단위로 독립적인 브랜치를 만들어 안전하게 개발하고 코드를 병합할 수 있습니다.
  • 협업에 강함 : GitHub, GitLab, Bitbucket 등과 연동하여 다수의 개발자들과 효율적으로 협업할 수 있습니다.

 

GitHub, GitLab, Bitbucket - 무엇이 다를까?

Git은 로컬에서도 충분히 사용할 수 있지만, 실제 업무에서는 여러명이 함께 코드 작업을 하기 위해 원격 저장소 플랫폼을 사용하는 경우가 일반적입니다.

대표적인 Git 협업 플랫폼으로 GitHub, GitLab, Bitbucket이 많이 사용됩니다.

이 세 플랫폼은 모두 Git 기반의 협업 기능을 제공하지만, 제공하는 기능, 인터페이스, 접근 방식에서 차이가 있습니다.

항목 GitHub GitLab Bitbucket
개발 Microsoft GitLab Inc. Atlassian
CI/CD 통합 GitHub Actions (간편하고 빠름) GitLab CI/CD (강력하고 유연함) Bitbucket Pipelines (기본 제공)
Private 저장소 무료 제공 무료 제공 무료 제공
UI/UX 직관적이고 깔끔함 세부 기능까지 풍부 Jira와 연동에 최적화된 구성
퍼미션 관리 팀 단위 설정 가능 그룹/하위 그룹, 역할 기반 세밀 제어 가능 프로젝트/워크스페이스 기반 제어 가능
통합 도구 Actions, Copilot, Codespaces 등 다양함 자체적인 이슈 트래킹, Wiki 등 All-in-one Jira, Trello, Confluence와 자연스러운 통합
오픈소스 커뮤니티 매우 활발함 (스타 수 기준 압도적) 다소 적지만 GitLab 자체 프로젝트는 오픈소스 오픈소스 중심보다는 비즈니스 중심 활용이 많음
자체 호스팅 GitHub Enterprise 필요 (유료) 무료 자체 호스팅 가능 (GitLab CE) Bitbucket Data Center

 

Git 설치 전 기본 용어 이해하기

Git을 시작하기 전에 아래의 개념을 간단히 알아보겠습니다.

용어 설명
Repository(저장소) 프로젝트의 모든 변경 이력을 추적하는 공간입니다. 로컬과 원격 저장소로 나뉩니다.
Commit 변경된 내용을 저장소에 기록하는 행위입니다. 이력이 쌓여 프로젝트의 히스토리를 만듭니다.
Branch 하나의 작업 흐름을 위한 독립적인 공간입니다. 기능별로 브랜치를 만들고 병합할 수 있습니다.
Remote 원격 저장소를 의미합니다. GitHub, GitLab, Bitbucket 등과 연결하여 협업할 수 있습니다.
Clone 원격 저장소를 복사하여 내 로컬 저장소로 가져오는 작업입니다. 협업 시 가장 먼저 수행하는 명령입니다.
Push 로컬 저장소에서 커밋한 내용을 원격 저장소로 업로드 하는 작업입니다. 팀원과 변경사항을 공유하거나, 백업하는 목적도 있습니다.
PR(Pull Request) 주로 GitHub, GitLab 등에서 사용하는 협업을 위한 코드 병합 요청입니다. 자신의 작업한 메인 브랜치를 병합하기 전에 리뷰를 요청하는 방식으로, 코드 검토와 논의를 통해 품질을 높일 수 있습니다.