이 글은 개발을 처음 시작하는 분들을 위해, 소프트웨어 개발에서 가장 기본이 되는 버전 관리 도구인 Git과 GitHub의 개념과 사용법을 하나씩 따라 하며 익힐 수 있도록 작성되었습니다. CLI(명령어), 실습 예제, 실전 팁을 모두 포함했으니, 차근차근 따라 해보세요!

Git과 GitHub 기초: 버전 관리의 시작

들어가며

소프트웨어 개발을 시작하면 반드시 마주치는 것이 바로 “버전 관리”입니다. 코드를 작성하다 보면 실수로 파일을 지우거나, 이전 상태로 돌아가고 싶을 때가 있습니다. 또, 여러 명이 협업할 때는 누가 언제 어떤 부분을 수정했는지 기록이 필요합니다. 이런 문제를 해결해주는 도구가 바로 Git입니다.

이 글에서는 다음과 같은 내용을 다룹니다.

  • 버전 관리란 무엇인가?
  • Git과 GitHub의 차이와 역할
  • Git 설치 및 기본 설정
  • 로컬 저장소 생성과 파일 관리
  • 커밋, 브랜치, 병합의 기본
  • GitHub를 통한 원격 저장소 활용
  • 실전 예제와 자주 하는 실수

1. 버전 관리란 무엇인가?

버전 관리란, 파일의 변경 이력을 기록하고, 필요할 때 원하는 시점으로 되돌릴 수 있게 해주는 시스템입니다. 개발자가 코드를 작성하다 보면 실수도 하고, 여러 가지 시도를 하게 됩니다. 이때 버전 관리 시스템이 있으면 언제든 이전 상태로 돌아갈 수 있고, 여러 명이 동시에 작업해도 충돌을 최소화할 수 있습니다.

가장 널리 쓰이는 버전 관리 시스템이 바로 Git입니다.

2. Git과 GitHub의 차이와 역할

  • Git: 내 컴퓨터(로컬)에서 파일의 변경 이력을 관리하는 프로그램입니다. 오픈소스이며, 무료로 사용할 수 있습니다.
  • GitHub: Git 저장소를 인터넷(클라우드)에 올려서, 다른 사람과 협업하거나 백업할 수 있게 해주는 서비스입니다. GitHub 외에도 GitLab, Bitbucket 등 다양한 서비스가 있지만, 가장 대중적인 것이 GitHub입니다.

정리하자면, Git은 도구(프로그램), GitHub는 협업을 위한 온라인 공간입니다.

3. Git 설치 및 기본 설정

Windows에서 Git 설치하기
  1. Git 공식 다운로드 페이지에서 설치 파일을 내려받아 실행합니다.
  2. 설치 도중 특별히 바꿀 옵션이 없다면 기본값으로 계속 “Next”를 누르면 됩니다.
  3. 설치가 끝나면 바탕화면에서 “Git Bash”를 실행해봅니다.
Git 버전 확인
git --version
사용자 정보 등록

Git은 누가 어떤 작업을 했는지 기록합니다. 따라서 이름과 이메일을 등록해야 합니다.

git config --global user.name "홍길동"
git config --global user.email "hong@example.com"
에디터 설정(선택)

커밋 메시지 작성 시 사용할 기본 에디터를 바꿀 수 있습니다. (예: VSCode)

git config --global core.editor "code --wait"

4. 로컬 저장소 생성과 파일 관리

저장소(Repository)란?

저장소는 코드와 변경 이력을 저장하는 공간입니다. 폴더 하나가 저장소가 될 수 있습니다.

저장소 만들기
  1. 원하는 폴더를 만들고 그 안으로 들어갑니다.
  2. 아래 명령어를 실행합니다.
mkdir my-first-repo
cd my-first-repo
git init

git init 명령을 실행하면, 숨겨진 .git 폴더가 생기고, 이 폴더가 바로 Git이 이 폴더를 버전 관리하겠다는 표시입니다.

파일 추가 및 상태 확인
echo "Hello Git!" > hello.txt
git status

git status 명령으로 현재 저장소의 상태(추적되지 않은 파일, 변경된 파일 등)를 확인할 수 있습니다.

파일을 Git에 등록하기 (add)
git add hello.txt
git status

git add는 파일을 “커밋 후보”로 등록하는 단계입니다.

5. 커밋, 브랜치, 병합의 기본

커밋(Commit)이란?

커밋은 파일의 현재 상태를 “스냅샷”처럼 저장하는 기능입니다. 커밋을 하면 언제든 해당 시점으로 되돌아갈 수 있습니다.

git commit -m "첫 번째 커밋: hello.txt 파일 추가"
커밋 이력 확인
git log
브랜치(Branch)란?

브랜치는 독립적으로 개발을 진행할 수 있는 “작업 줄기”입니다. 예를 들어, 새로운 기능을 실험할 때 브랜치를 만들어 작업하면, 기존 코드에 영향을 주지 않고 자유롭게 시도할 수 있습니다.

git branch feature/test
브랜치 이동
git checkout feature/test
브랜치 병합(Merge)

브랜치에서 작업한 내용을 메인 브랜치(main/master)에 합치는 과정입니다.

git checkout main
git merge feature/test

6. GitHub를 통한 원격 저장소 활용

GitHub 계정 만들기
  1. GitHub 가입 페이지에서 계정을 만듭니다.
  2. 이메일 인증 및 간단한 프로필 설정을 완료합니다.
새 저장소(Repository) 생성
  1. 로그인 후 오른쪽 상단의 + 버튼 → “New repository” 클릭
  2. 저장소 이름, 설명 입력 후 “Create repository” 클릭
로컬 저장소와 GitHub 연결
  1. GitHub에서 안내하는 주소(예: https://github.com/username/my-first-repo.git)를 복사합니다.
  2. 터미널에서 아래 명령어를 실행합니다.
git remote add origin https://github.com/username/my-first-repo.git
git branch -M main
git push -u origin main
변경사항 올리기(push)
git add .
git commit -m "작업 내용 설명"
git push
변경사항 내려받기(pull)
git pull

7. 실전 예제와 자주 하는 실수

실전 예제: README.md 파일 추가 및 올리기
  1. 파일 생성
    echo "# My First Repo" > README.md
    git add README.md
    git commit -m "README.md 추가"
    git push
    
  2. GitHub에서 저장소를 새로고침하면 README.md가 올라간 것을 볼 수 있습니다.
자주 하는 실수와 해결법
  • add, commit, push 순서 헷갈림: 항상 addcommitpush 순서입니다.
  • 커밋 메시지 누락: git commit -m "메시지"에서 메시지를 꼭 입력해야 합니다.
  • 충돌(conflict) 발생: 여러 명이 동시에 같은 파일을 수정하면 충돌이 날 수 있습니다. 이때는 Git이 안내하는 부분을 직접 수정한 뒤, addcommit을 다시 하면 됩니다.
  • 원격 저장소 주소 오타: git remote -v로 현재 연결된 주소를 확인할 수 있습니다.

8. Git을 더 잘 쓰기 위한 팁

  • .gitignore 파일 사용: 버전 관리에서 제외할 파일(예: 빌드 결과물, 비밀키 등)은 .gitignore 파일에 명시합니다.
  • 커밋 메시지 잘 쓰기: 한글로 명확하게, 무엇을 왜 변경했는지 간단히 적어주세요.
  • 작은 단위로 자주 커밋하기: 큰 덩어리로 한 번에 커밋하기보다, 기능 단위로 자주 커밋하면 나중에 관리가 쉽습니다.
  • GUI 툴 활용: Sourcetree, GitHub Desktop 등 그래픽 인터페이스 툴도 있으니, CLI가 어렵다면 활용해보세요.

9. 참고 자료

버전 관리는 개발자의 필수 역량입니다. 이 글을 따라하며 직접 실습해보면, 앞으로의 개발 여정이 훨씬 수월해질 것입니다. 궁금한 점이 있다면 위의 레퍼런스를 참고하거나, 구글 검색을 적극 활용해보세요!