Git 입문: 버전 관리가 필요한 이유와 기본 명령어
모든 개발자가 사용하는 필수 도구, Git 마스터하기
Git이 왜 필요한가요?
"Ctrl+Z로 되돌리면 되는데 왜 Git을 배워야 하나요?" 이 질문에 명확히 답해드리겠습니다.
Git 없이 프로젝트를 관리한다면
프로젝트/
├── 최종.html
├── 최종_진짜.html
├── 최종_진짜_최종.html
├── 최종_진짜_최종_이번엔진짜.html
└── 최종_0214_백업.html
이런 상황에 공감하신다면 Git이 필요합니다!
Git이 해결하는 문제들
- 버전 관리: 언제든 과거 버전으로 돌아갈 수 있음
- 변경 이력: 누가, 언제, 무엇을, 왜 변경했는지 기록
- 협업: 여러 사람이 동시에 작업 가능
- 백업: GitHub에 코드를 안전하게 보관
- 실험: 원본을 망가뜨리지 않고 새로운 기능 테스트
Git 기본 개념
저장소 (Repository)
프로젝트를 저장하는 폴더입니다. Git으로 관리되는 폴더를 "저장소" 또는 "레포(repo)"라고 부릅니다.
커밋 (Commit)
프로젝트의 특정 시점을 저장하는 것입니다. 게임의 "세이브"와 비슷합니다.
스테이징 (Staging)
커밋할 파일을 선택하는 단계입니다. 사진을 찍기 전에 포즈를 잡는 것과 비슷합니다.
Git 기본 작업 흐름
작업 폴더 (Working Directory)
↓ git add
스테이징 영역 (Staging Area)
↓ git commit
로컬 저장소 (Local Repository)
↓ git push
원격 저장소 (Remote Repository - GitHub)
실전 Git 사용법
1. 새 프로젝트 시작하기
# 1. 프로젝트 폴더로 이동
cd my-project
# 2. Git 저장소 초기화
git init
# ".git" 폴더가 생성됨 (숨김 폴더)
# 3. 현재 상태 확인
git status
# 빨간 글씨로 추적되지 않는 파일들이 표시됨
2. 첫 커밋 만들기
# 1. 파일을 스테이징 영역에 추가
git add index.html # 특정 파일만
git add *.css # CSS 파일 전부
git add . # 모든 파일
# 2. 상태 확인
git status
# 초록 글씨로 스테이징된 파일들이 표시됨
# 3. 커밋 (저장)
git commit -m "첫 커밋: 기본 HTML 구조 추가"
# -m: 메시지 (무엇을 변경했는지 설명)
3. 변경사항 확인하기
# 커밋 히스토리 보기
git log
# 모든 커밋 목록과 메시지 표시
# 간단하게 보기
git log --oneline
# 변경된 내용 확인
git diff
# 아직 스테이징하지 않은 변경사항 표시
4. 과거로 돌아가기
# 커밋 목록 확인
git log --oneline
# 예: a1b2c3d "기능 추가"
# 특정 커밋으로 돌아가기 (확인만)
git checkout a1b2c3d
# 최신 버전으로 돌아오기
git checkout main
# 완전히 되돌리기 (주의!)
git reset --hard a1b2c3d
GitHub 연동하기
1. GitHub에 저장소 만들기
- github.com 접속 후 로그인
- 오른쪽 위 "+" 클릭 → "New repository"
- 저장소 이름 입력 (예: my-project)
- "Create repository" 클릭
2. 로컬 저장소와 연결
# GitHub 저장소 URL 복사 후
git remote add origin https://github.com/사용자명/my-project.git
# 연결 확인
git remote -v
3. 코드 업로드 (Push)
# 처음 push할 때
git push -u origin main
# 이후부터는 간단하게
git push
4. 코드 다운로드 (Pull)
# 다른 곳에서 작업한 내용 가져오기
git pull
브랜치: 안전하게 실험하기
브랜치는 프로젝트의 "평행 세계"를 만드는 것입니다. 원본을 건드리지 않고 새 기능을 개발할 수 있습니다.
# 새 브랜치 만들기
git branch feature-login
# 브랜치로 이동
git checkout feature-login
# 또는 만들면서 바로 이동
git checkout -b feature-login
# 현재 브랜치 확인
git branch
# 작업 후 main으로 돌아가기
git checkout main
# 브랜치 병합
git merge feature-login
# 브랜치 삭제
git branch -d feature-login
.gitignore: 무시할 파일 지정
모든 파일을 Git에 올릴 필요는 없습니다. 민감한 정보나 불필요한 파일은 제외합니다.
# .gitignore 파일 생성
# 다음 파일들은 Git이 무시함
node_modules/ # npm 패키지
.env # 환경 변수 (비밀번호 등)
*.log # 로그 파일
.DS_Store # Mac 시스템 파일
Thumbs.db # Windows 썸네일
좋은 커밋 메시지 작성법
나쁜 예
git commit -m "수정"
git commit -m "ㅁㄴㅇㄹ"
git commit -m "버그 고침"
git commit -m "이것저것 수정함"
좋은 예
git commit -m "Add login button to header"
git commit -m "Fix: 로그인 버튼 클릭 시 에러 수정"
git commit -m "Update: 메인 페이지 디자인 개선"
git commit -m "Remove: 사용하지 않는 CSS 파일 삭제"
커밋 메시지 규칙
- 명령형으로 작성 ("추가했음" ❌, "추가" ✅)
- 무엇을 변경했는지 명확하게
- 왜 변경했는지 설명 (필요시)
- 한 커밋에는 하나의 주제만
자주 사용하는 Git 명령어 정리
# 저장소 초기화
git init
# 파일 스테이징
git add 파일명
git add .
# 커밋
git commit -m "메시지"
# 상태 확인
git status
# 히스토리 확인
git log
git log --oneline
# 원격 저장소 연결
git remote add origin URL
# Push
git push
git push -u origin main # 처음
# Pull
git pull
# 브랜치
git branch 브랜치명
git checkout 브랜치명
git merge 브랜치명
# 변경사항 확인
git diff
실전 시나리오
시나리오 1: 새 프로젝트 시작
# 1. 폴더 만들고 이동
mkdir my-website
cd my-website
# 2. Git 초기화
git init
# 3. 파일 생성
# (VS Code에서 index.html 등 작성)
# 4. 첫 커밋
git add .
git commit -m "Initial commit: 프로젝트 시작"
# 5. GitHub에 올리기
git remote add origin https://github.com/username/my-website.git
git push -u origin main
시나리오 2: 기존 프로젝트 가져오기
# GitHub에서 프로젝트 복제
git clone https://github.com/username/project.git
# 폴더로 이동
cd project
# 작업 후
git add .
git commit -m "작업 내용"
git push
시나리오 3: 실수로 잘못 커밋했을 때
# 마지막 커밋 취소 (파일은 유지)
git reset --soft HEAD~1
# 다시 수정 후 재커밋
git add .
git commit -m "올바른 메시지"
🎯 Git 연습 과제
- □ 새 프로젝트에 Git 초기화
- □ 3개 이상의 파일로 첫 커밋 만들기
- □ GitHub 저장소 만들고 연결하기
- □ Push해서 GitHub에서 확인하기
- □ 새 브랜치 만들어서 작업해보기
- □ .gitignore 파일 작성하기
"Git은 처음엔 어렵지만, 익숙해지면 없이는 개발할 수 없는 도구가 됩니다. 매일 조금씩 사용하다 보면 자연스럽게 몸에 배게 됩니다."
Git의 기초를 마스터했습니다! 이제 실제 프로젝트를 시작할 준비가 되었습니다. 다음 글에서는 처음부터 끝까지 프로젝트를 완성하는 방법을 알아보겠습니다.