Git 초보 가이드: 버전 관리 시작하기 위한 모든 것

핵심 요약: Git의 개념부터 설치, 핵심 명령어, GitHub 사용법까지 초보자가 알아야 할 모든 것을 정리합니다. 실습 예시와 함께 단계별로 따라하며 Git을 배울 수 있는 입문 가이드입니다.

Git이란 무엇인가?

Git은 파일의 변경 이력을 추적하고 관리하는 분산 버전 관리 시스템(DVCS)입니다. 2005년 리눅스 커널의 창시자 리누스 토르발즈가 개발했으며, 현재 소프트웨어 개발에서 가장 널리 사용되는 버전 관리 도구입니다.

쉽게 말해 Git은 파일의 '세이브 포인트'를 만들어주는 도구입니다. 문서를 작성하면서 "보고서_최종.docx", "보고서_최종_수정.docx", "보고서_진짜최종.docx"처럼 파일을 복사해본 경험이 있나요? Git을 사용하면 이런 문제가 사라집니다. 하나의 파일에서 변경 이력을 체계적으로 관리하고, 언제든 이전 버전으로 되돌릴 수 있습니다.

왜 Git을 배워야 하나요?

  • 개발자에게 필수: 대부분의 IT 회사에서 Git 사용을 기본으로 요구합니다. 채용 공고에서도 Git 경험을 필수 요건으로 언급하는 경우가 많습니다.
  • 협업의 핵심: 여러 사람이 동시에 같은 프로젝트를 수정할 때, 누가 무엇을 변경했는지 충돌 없이 관리할 수 있습니다.
  • 실수 복구: 코드를 잘못 수정했을 때 이전 상태로 쉽게 되돌릴 수 있습니다.
  • 비개발자에게도 유용: 기획서, 디자인 파일, 문서 등의 버전 관리에도 활용할 수 있습니다.

Git 설치하기

Windows

git-scm.com에서 Git for Windows를 다운로드하여 설치합니다. 설치 과정에서 대부분 기본 설정을 그대로 유지하면 됩니다. 설치 후 Git Bash라는 터미널 프로그램이 함께 설치됩니다.

macOS

터미널을 열고 git --version을 입력하면 Xcode Command Line Tools 설치를 묻는 팝업이 나타납니다. 설치를 진행하면 Git이 함께 설치됩니다. 또는 Homebrew를 사용하여 brew install git으로 설치할 수도 있습니다.

설치 확인 및 초기 설정

터미널(또는 Git Bash)에서 다음 명령어를 실행하여 설치를 확인하고 기본 정보를 설정합니다.

  • git --version: Git 버전 확인
  • git config --global user.name "이름": 사용자 이름 설정
  • git config --global user.email "이메일": 이메일 설정

이 정보는 Git에서 변경 이력을 기록할 때 "누가" 변경했는지를 표시하는 데 사용됩니다.

Git의 핵심 개념

저장소 (Repository)

Git으로 관리되는 프로젝트 폴더를 저장소(Repository, 줄여서 Repo)라고 합니다. 저장소 안에는 프로젝트 파일과 함께 .git이라는 숨겨진 폴더가 있으며, 이 폴더에 모든 변경 이력이 저장됩니다.

커밋 (Commit)

커밋은 파일의 변경 사항을 저장소에 기록하는 행위입니다. 게임의 세이브 포인트와 같습니다. 각 커밋에는 변경 내용, 작성자, 시간, 설명 메시지가 포함됩니다.

브랜치 (Branch)

브랜치는 독립적인 작업 공간입니다. 메인 코드(main 브랜치)에서 새로운 브랜치를 만들어 기능을 개발하고, 완성되면 메인에 합치는(merge) 방식으로 작업합니다. 이렇게 하면 메인 코드를 안전하게 유지하면서 새로운 기능을 실험할 수 있습니다.

Git의 세 가지 영역

  • Working Directory(작업 디렉토리): 실제 파일을 편집하는 공간
  • Staging Area(스테이징 영역): 커밋할 파일을 준비하는 중간 공간
  • Repository(저장소): 커밋된 이력이 저장되는 공간

작업 흐름은 파일 수정 → 스테이징(add) → 커밋(commit) 순서로 진행됩니다.

필수 Git 명령어

저장소 관련

  • git init: 현재 폴더를 Git 저장소로 초기화합니다.
  • git clone [URL]: 원격 저장소를 복제하여 로컬에 다운로드합니다.

기본 작업 흐름

  • git status: 현재 상태를 확인합니다. 어떤 파일이 수정되었고 스테이징되었는지 보여줍니다.
  • git add [파일명]: 파일을 스테이징 영역에 추가합니다. git add .을 사용하면 모든 변경 파일을 추가합니다.
  • git commit -m "설명": 스테이징된 파일을 커밋합니다. -m 뒤에 변경 내용을 설명하는 메시지를 작성합니다.
  • git log: 커밋 이력을 확인합니다. git log --oneline으로 간결하게 볼 수 있습니다.

브랜치 관련

  • git branch: 현재 브랜치 목록을 확인합니다.
  • git branch [이름]: 새 브랜치를 만듭니다.
  • git checkout [이름]: 해당 브랜치로 이동합니다. git switch [이름]도 같은 역할을 합니다.
  • git merge [이름]: 현재 브랜치에 다른 브랜치를 합칩니다.

원격 저장소 관련

  • git remote add origin [URL]: 원격 저장소를 연결합니다.
  • git push: 로컬 커밋을 원격 저장소에 업로드합니다.
  • git pull: 원격 저장소의 최신 변경사항을 다운로드하고 병합합니다.

GitHub 시작하기

GitHub는 Git 저장소를 온라인에 호스팅하는 서비스입니다. 코드를 클라우드에 백업하고, 다른 사람과 공유하며, 협업할 수 있습니다.

GitHub 가입 및 저장소 만들기

  • github.com에서 무료 계정을 만듭니다.
  • "New Repository" 버튼을 클릭하여 새 저장소를 만듭니다.
  • 저장소 이름, 공개/비공개 설정, README 파일 추가 여부를 선택합니다.
  • 생성된 저장소의 URL을 복사하여 로컬 Git과 연결합니다.

Pull Request (PR)

Pull Request는 자신의 브랜치에서 작업한 내용을 메인 브랜치에 합쳐달라고 요청하는 기능입니다. 팀원들이 코드를 리뷰하고 승인한 후 병합하는 과정을 거칩니다. 이를 통해 코드 품질을 유지하고 실수를 방지할 수 있습니다.

Git 사용 시 좋은 습관

  • 자주 커밋하기: 큰 변경을 한 번에 커밋하기보다 작은 단위로 자주 커밋하는 것이 좋습니다. 문제가 발생했을 때 원인을 찾기 쉽습니다.
  • 의미 있는 커밋 메시지: "수정", "업데이트" 같은 모호한 메시지 대신 "로그인 버그 수정: 빈 비밀번호 입력 시 에러 처리 추가"처럼 구체적으로 작성하세요.
  • 브랜치 활용: 새로운 기능 개발이나 실험은 반드시 별도 브랜치에서 진행하세요. main 브랜치는 항상 안정적인 상태를 유지해야 합니다.
  • .gitignore 사용: 비밀번호, API 키, 빌드 파일 등 저장소에 포함하면 안 되는 파일은 .gitignore 파일에 등록하세요.

Git GUI 도구 추천

명령어가 어렵게 느껴진다면 GUI(그래픽 인터페이스) 도구를 사용해보세요.

  • GitHub Desktop: GitHub에서 만든 무료 도구. 직관적인 인터페이스로 커밋, 브랜치 관리, Push/Pull을 쉽게 할 수 있습니다.
  • Sourcetree: Atlassian에서 만든 무료 Git GUI. 브랜치 시각화가 뛰어납니다.
  • VS Code Git 통합: Visual Studio Code의 내장 Git 기능으로, 코드 편집과 Git 작업을 한 화면에서 할 수 있습니다.

GUI 도구로 시작하되, 기본 명령어도 함께 익히는 것을 추천합니다. 명령어를 알면 어떤 환경에서든 Git을 사용할 수 있습니다.

자주 묻는 질문 (FAQ)

Git과 GitHub는 같은 것인가요?

아닙니다. Git은 로컬 컴퓨터에서 동작하는 버전 관리 '도구'이고, GitHub는 Git 저장소를 온라인에 호스팅하는 '서비스(플랫폼)'입니다. Git 없이는 GitHub를 사용할 수 없지만, GitHub 없이도 Git은 로컬에서 사용할 수 있습니다. GitHub 외에도 GitLab, Bitbucket 등 유사한 서비스가 있습니다.

비개발자도 Git을 배울 필요가 있나요?

필수는 아니지만 파일 버전 관리가 필요한 직군이라면 유용합니다. 기획자, 디자이너, 데이터 분석가 등도 프로젝트 파일의 변경 이력을 관리하고 팀원과 협업하는 데 Git을 활용할 수 있습니다. 다만 명령어 방식이 부담스럽다면 GitHub Desktop 같은 GUI 도구를 사용하면 됩니다.

Git을 배우는 데 얼마나 걸리나요?

기본적인 사용법(init, add, commit, push, pull)은 하루에서 이틀이면 익힐 수 있습니다. 브랜치 관리, 머지 충돌 해결, 리베이스 등 중급 기능은 실제 프로젝트에서 경험하면서 1~2주 정도 추가로 필요합니다. 처음에는 기본 명령어 5~6개만 익히고, 필요한 기능을 하나씩 추가로 배워나가는 것을 추천합니다.