로딩 중...

Git 기초 가이드

버전 관리 시스템의 기본을 배워봅시다

1-1. 이런 경험 있으신가요?

보고서_최종.docx
보고서_최종_수정.docx
보고서_진짜최종.docx
보고서_진짜진짜최종_v2.docx

파일을 수정할 때마다 이름을 바꿔서 저장한 경험, 다들 있으시죠? 코드도 마찬가지입니다. 기능을 추가하다가 갑자기 에러가 나면 "아까 되던 코드로 돌아가고 싶다!"는 생각이 들 때가 있습니다.

Git은 이 문제를 해결해줍니다.

1-2. Git이란?

Git은 버전 관리 시스템(VCS)입니다. 쉽게 말해 코드의 타임머신이자 세이브 포인트입니다.

게임에서 세이브를 하면 언제든 그 시점으로 돌아갈 수 있죠? Git도 마찬가지입니다. 코드가 잘 되는 시점에 "저장(커밋)"을 해두면, 나중에 코드가 망가져도 그 시점으로 돌아갈 수 있습니다.

1-3. Git vs GitHub

구분GitGitHub
정체프로그램 (내 컴퓨터에 설치)웹사이트 (인터넷 저장소)
비유내 컴퓨터의 세이브 파일클라우드에 올린 세이브 파일
역할버전 관리를 수행Git 저장소를 온라인에 보관
인터넷필요 없음필요함

정리하면 Git은 내 컴퓨터에서 돌아가는 도구이고, GitHub는 그 결과물을 인터넷에 올려두는 서비스입니다.

1-4. Git의 3가지 공간 (핵심 개념)

Git에는 파일이 거치는 3개의 공간이 있습니다. 이것만 이해하면 절반은 끝입니다.

작업 디렉토리
(Working Dir)
파일 수정
스테이징 영역
(Staging Area)
git add
저장소 (.git)
(Repository)
git commit

비유로 설명하면:

📝 책상 위에서 작업📦 택배 상자에 담기✅ 택배 발송 완료

2-1. 설치 확인

터미널(명령 프롬프트)을 열고 아래 명령어를 입력하세요.

git --version

git version 2.xx.x 같은 결과가 나오면 이미 설치되어 있는 것입니다.

2-2. 설치가 안 되어 있다면

운영체제설치 방법
Windowshttps://git-scm.com 에서 다운로드 후 설치 (기본 설정 그대로 Next)
Mac터미널에서 xcode-select --install 입력

2-3. 최초 1회 설정 (이름, 이메일)

Git을 처음 사용할 때 "나는 누구인지" 알려줘야 합니다. 아래 명령어에서 따옴표 안의 내용을 본인 정보로 바꿔 입력하세요.

git config --global user.name "홍길동"git config --global user.email "hong@example.com"

설정이 잘 됐는지 확인하려면 git config --list 를 입력합니다.

명령어 한눈에 보기

git init→ "여기서 Git 시작할게!"
git status→ "지금 상태가 어때?"
git add→ "이 파일 보낼 준비!"
git commit→ "저장 확정!"
git log→ "지금까지 기록 보여줘"

git init — 저장소 만들기

mkdir my_project
cd my_project
git init

git init을 실행하면 해당 폴더가 Git 저장소가 됩니다. 숨겨진 .git 폴더가 생성되는데, 이 폴더가 모든 버전 기록을 보관합니다.

⚠️ 주의사항: .git 폴더를 절대 직접 수정하거나 삭제하지 마세요!

git status — 현재 상태 확인

git status

이 명령어는 현재 어떤 파일이 수정되었고, 어떤 파일이 커밋 준비가 되었는지 알려줍니다.

출력 예시:

On branch main

Untracked files:          ← "Git이 아직 모르는 새 파일이 있어요"
  hello.py

Changes not staged:       ← "수정했지만 아직 add 안 한 파일"
  modified: main.py

Changes to be committed:  ← "add 완료! 커밋하면 저장됩니다"
  new file: utils.py

💡 팁: 뭘 해야 할지 모르겠으면 git status부터 치세요!

git add — 스테이징 (커밋 준비)

# 특정 파일 하나만 추가
git add hello.py

# 여러 파일 한번에 추가
git add hello.py main.py

# 현재 폴더의 모든 변경 파일 추가
git add .

git add는 '이 파일을 다음 커밋에 포함시키겠다'는 의미입니다.

git commit — 저장 확정

git commit -m "첫 번째 커밋: hello.py 추가"

-m 뒤에 오는 문자열은 커밋 메시지입니다. '이번에 뭘 했는지'를 간단히 적는 것입니다.

좋은 예:

  • 로그인 기능 추가
  • 비밀번호 유효성 검사 버그 수정
  • README 파일 작성

나쁜 예:

  • 수정
  • asdf
  • ㅋㅋ
  • 최종

git log — 커밋 기록 보기

# 전체 로그 보기
git log

# 한 줄씩 간단히 보기 (추천!)
git log --oneline

앞의 영문+숫자 조합은 커밋 ID입니다. 나중에 특정 시점으로 돌아갈 때 이 ID를 사용합니다.

출력 예시:

a1b2c3d (HEAD -> main) 비밀번호 검증 기능 추가
f4e5d6c 로그인 기능 구현
7a8b9c0 첫 번째 커밋: 프로젝트 생성

실습 목표

파이썬 파일을 만들고, 수정하면서 Git으로 버전을 관리해봅니다.

Step 1

프로젝트 폴더 생성 및 Git 초기화

mkdir python_practice
cd python_practice
git init

결과:

Initialized empty Git repository in .../python_practice/.git/
Step 2

첫 번째 파일 만들기

hello.py 파일을 만들고 아래 내용을 작성하세요.

# hello.py
print("안녕하세요! Git 실습입니다.")
Step 3

상태 확인 → 추가 → 커밋

git status          # hello.py가 Untracked로 표시됨
git add hello.py    # 스테이징
git status          # hello.py가 "Changes to be committed"로 변경됨
git commit -m "첫 번째 커밋: hello.py 생성"
Step 4

파일 수정 후 두 번째 커밋

hello.py 파일을 만들고 아래 내용을 작성하세요.

# hello.py
def greet(name):
    print(f"안녕하세요, {name}님! Git 실습입니다.")

greet("철수")
git status          # hello.py가 "modified"로 표시됨
git add hello.py
git commit -m "greet 함수 추가"
Step 5

새 파일 추가 후 세 번째 커밋

calculator.py 파일을 만들고 아래 내용을 작성하세요.

# calculator.py
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

print(add(3, 5))        # 8
print(subtract(10, 4))  # 6
git add calculator.py
git commit -m "계산기 함수 추가 (add, subtract)"
Step 6

커밋 기록 확인

git log --oneline

결과:

c3d4e5f (HEAD -> main) 계산기 함수 추가 (add, subtract)
a1b2c3d greet 함수 추가
7a8b9c0 첫 번째 커밋: hello.py 생성

🎉 축하합니다! 3개의 버전(세이브 포인트)이 만들어졌습니다!

Step 7

과거 코드 확인해보기

# 첫 번째 커밋 시점의 hello.py 내용 보기
git show 7a8b9c0:hello.py

아까 작성한 첫 번째 버전의 코드가 보입니다. 이처럼 Git은 모든 변경 기록을 보관하고 있어서 언제든 과거 시점의 코드를 확인할 수 있습니다.

GitHub 가입

https://github.com 에서 계정을 만듭니다 (무료).

새 저장소(Repository) 만들기

  1. GitHub 우측 상단 + 버튼 클릭하고 New repository를 선택합니다
  2. Repository name에 python_practice를 입력합니다
  3. Public(공개)을 선택합니다
  4. 나머지는 체크하지 않고 Create repository를 클릭합니다

내 코드를 GitHub에 올리기

git remote add origin https://github.com/내아이디/python_practice.git
git branch -M main
git push -u origin main
명령어의미
git remote add origin 주소"이 GitHub 주소를 origin이라는 이름으로 연결해줘"
git branch -M main"현재 브랜치 이름을 main으로 할게"
git push -u origin main"내 커밋들을 GitHub에 올려줘!"

앞으로 코드를 수정할 때마다

이 3단계가 Git 사용의 기본 루틴입니다.

# 1. 코드 수정
# 2. add + commit
git add .
git commit -m "변경 내용 설명"

# 3. GitHub에 반영
git push

명령어 정리

git init새 저장소 만들기
git status현재 상태 확인
git add 파일명커밋할 파일 지정
git add .모든 변경 파일 지정
git commit -m ""변경사항 확정 저장
git log커밋 기록 보기
git log --oneline커밋 기록 한줄로 보기
git remote addGitHub 저장소 연결
git pushGitHub에 업로드

[일상 루틴]

코드 수정 → git add . → git commit -m "" → git push

자주 하는 실수 & 해결법

실수 1: '커밋할 게 없다고 나와요'

nothing to commit, working tree clean

add를 하지 않았거나, 파일을 수정하지 않은 상태입니다. git status로 현재 상태를 먼저 확인하세요.

실수 2: '커밋 메시지를 안 썼어요' (vim 화면이 나올 때)

-m 옵션 없이 git commit만 입력하면 텍스트 편집기(vim)가 열립니다.

당황하지 말고 아래를 입력하세요. :q! ← 저장 안 하고 나가기 그런 다음 -m 옵션을 붙여서 다시 커밋하세요. git commit -m "메시지 입력"

실수 3: 'add를 잘못했어요'

git reset HEAD 파일명 # 스테이징 취소 (파일 내용은 안 바뀜)

실수 4: '.git 폴더를 지워버렸어요'

.git 폴더가 삭제되면 모든 커밋 기록이 사라집니다. 복구 불가능하므로 이 폴더는 절대 삭제하지 마세요.