IT·활용 팁

깃(Git) 입문 - 버전관리 기초! 설치부터 커밋·깃허브(GitHub) 푸시까지 🐙

Mojangcam 2026. 7. 14. 08:49

안녕하세요! Mojangcam입니다 😎

코딩을 하다 보면 이런 경험 다들 있으실 거예요. "어제까진 됐는데 뭘 건드렸는지 모르겠다…", "최종_진짜최종_이게진짜.py" 같은 파일이 폴더에 쌓여간다… 이걸 한 방에 해결해주는 게 바로 오늘의 주인공, 버전관리 도구 깃(Git)입니다!

깃은 코드의 변경 이력을 사진 찍듯 저장해두고, 언제든 과거 시점으로 되돌릴 수 있게 해주는 도구예요. 그리고 그 이력을 인터넷에 백업하고 공유하는 곳이 깃허브(GitHub)고요. 요즘은 개발 공부를 시작하면 파이썬 다음으로 배우는 게 깃이라고 할 정도로 필수 스킬이 됐어요. 이번 글에서는 설치부터 첫 커밋, 그리고 깃허브에 올리는 것까지 한 번에 끝내볼게요!

🧠 왜 깃(Git)을 써야 하나요?

  • 되돌리기: 코드를 망쳐도 커밋해둔 시점으로 언제든 복구할 수 있어요.
  • 백업: 깃허브에 올려두면 컴퓨터가 고장 나도 코드는 안전해요.
  • 협업: 여러 명이 같은 프로젝트를 동시에 작업할 수 있어요.
  • 포트폴리오: 깃허브 잔디(커밋 기록)는 그 자체로 개발 이력서가 됩니다!

앞서 만든 디스코드 봇 코드도 깃으로 관리하면, 기능 하나 추가할 때마다 안전하게 기록을 남길 수 있어요.

📌 준비물

  • Git 2.55.0 (2026-06-29 릴리스 기준 최신, 2.x면 모두 OK)
  • 윈도우 / macOS / 리눅스 아무거나
  • (푸시 단계) 깃허브(GitHub) 무료 계정

설치는 공식 사이트에서 받아요.

  • 윈도우: git-scm.com 에서 설치 파일 다운로드 → 옵션은 전부 기본값으로 Next만 눌러도 충분해요.
  • macOS: 터미널에 git --version 을 입력하면 자동으로 설치를 제안해줘요. (또는 brew install git)
  • 리눅스(우분투): sudo apt install git

설치 확인은 터미널(윈도우는 Git Bash)에서:

git --version
# git version 2.55.0

📌 1단계 - 최초 설정 (딱 한 번만)

깃은 "누가" 저장했는지를 기록하기 때문에, 처음에 이름과 이메일을 등록해줘야 해요.

git config --global user.name "Mojangcam"
git config --global user.email "내이메일@example.com"
git config --global init.defaultBranch main

하나씩 뜯어볼게요 💡

  • user.name / user.email : 커밋(저장 기록)에 남는 작성자 정보예요. 깃허브 계정 이메일과 맞춰두면 좋아요.
  • init.defaultBranch main : 새 저장소의 기본 브랜치 이름을 main으로 설정해요. 깃허브 기본값과 통일하는 거예요.
  • --global : 이 컴퓨터 전체에 적용한다는 뜻이라 한 번만 해두면 됩니다.

📌 2단계 - 저장소 만들고 첫 커밋 하기

프로젝트 폴더로 이동해서 깃 저장소를 만들어볼게요.

cd my-project      # 프로젝트 폴더로 이동
git init           # 이 폴더를 깃 저장소로 만들기
git status         # 현재 상태 확인 (습관처럼 자주!)

이제 파일을 저장(커밋)해봅니다. 깃의 저장은 2단계예요: 장바구니에 담고(add) → 결제하기(commit)!

git add .                          # 변경된 파일 전부 담기
git commit -m "첫 커밋: 프로젝트 시작"   # 메시지와 함께 저장!

하나씩 뜯어볼게요 💡

  • git add . : 현재 폴더의 모든 변경사항을 커밋 대기 상태(스테이징)로 올려요. 특정 파일만 담으려면 git add main.py 처럼 쓰면 돼요.
  • git commit -m "메시지" : 담아둔 변경사항을 하나의 기록으로 저장해요. 메시지는 "뭘 했는지" 알 수 있게 쓰는 게 핵심!
  • git log --oneline : 지금까지의 커밋 이력을 한 줄씩 보여줘요.

📌 3단계 - 깃허브(GitHub)에 올리기 (push)

이제 내 컴퓨터의 기록을 깃허브에 백업해볼게요.

  1. github.com 에서 New repository 클릭 → 이름 입력(예: my-project) → Create repository
  2. 아래 명령어로 내 저장소와 깃허브를 연결하고 업로드!
git remote add origin https://github.com/내아이디/my-project.git
git push -u origin main

하나씩 뜯어볼게요 💡

  • remote add origin 주소 : "origin"이라는 별명으로 깃허브 저장소 주소를 등록해요.
  • push -u origin main : main 브랜치를 깃허브로 업로드해요. -u 를 붙여두면 다음부터는 git push 만 쳐도 됩니다.
  • 처음 푸시할 때 로그인 창이 뜨면 브라우저 인증(Sign in with your browser)을 선택하는 게 제일 편해요.

📌 전체 코드 (복붙 OK)

# Git 2.55.0 기준 (2.x 공통)

# 0. 최초 설정 (컴퓨터당 한 번)
git config --global user.name "내이름"
git config --global user.email "내이메일@example.com"
git config --global init.defaultBranch main

# 1. 저장소 만들기
cd my-project
git init

# 2. 첫 커밋
git add .
git commit -m "첫 커밋: 프로젝트 시작"

# 3. 깃허브 연결 + 업로드
git remote add origin https://github.com/내아이디/my-project.git
git push -u origin main

# 4. 이후 반복 루틴 (이것만 기억!)
git add .
git commit -m "오늘 작업 내용"
git push

📌 실행 결과

git push 가 성공하면 터미널에 업로드 진행률이 표시되고, 깃허브 저장소 페이지를 새로고침하면 내 코드가 그대로 올라가 있어요! 이제부터 커밋할 때마다 깃허브 프로필에 초록색 잔디가 심어집니다 🌱

📌 자주 나는 에러

  1. 'git'은(는) 내부 또는 외부 명령... 이 아닙니다
    • 원인: 설치가 안 됐거나 PATH에 등록되지 않음.
    • 해결: Git 재설치 후 터미널을 새로 열기. 윈도우라면 설치와 함께 제공되는 Git Bash를 쓰면 확실해요.
  2. Author identity unknown / Please tell me who you are
    • 원인: 1단계의 user.name / user.email 설정을 건너뜀.
    • 해결: git config --global user.name, user.email 설정 후 다시 커밋하면 돼요.
  3. error: src refspec main does not match any
    • 원인: 커밋을 한 번도 안 한 상태에서 push 했거나, 브랜치 이름이 main이 아님(master 등).
    • 해결: 먼저 커밋을 만들고, git branch -M main 으로 브랜치 이름을 main으로 바꾼 뒤 다시 push!
  4. Support for password authentication was removed
    • 원인: 깃허브는 이제 비밀번호 로그인 대신 토큰/브라우저 인증을 요구해요.
    • 해결: 푸시할 때 뜨는 창에서 브라우저 인증을 선택하거나, 깃허브 설정에서 Personal Access Token을 발급해 비밀번호 자리에 입력하면 됩니다.

📌 마무리

오늘은 개발자 필수 스킬 깃(Git)의 핵심인 설정 → init → add → commit → push 흐름을 끝까지 달려봤어요! 이제 여러분의 디스코드 봇 코드도, 파이썬 자동화 스크립트도 안전하게 버전관리할 수 있습니다. 사실 실무에서 쓰는 깃의 80%는 오늘 배운 add / commit / push 반복이에요. 일단 오늘부터 커밋 습관을 들여보세요!

다음에는 브랜치(branch)로 기능별 작업을 나누는 법과 협업 워크플로도 다뤄볼 예정이니 기대해주세요 🙌

💬 궁금한 점은 댓글로 남겨주시면 답변드릴게요!