📚 교육/자기계발

Git 완벽 마스터 | 버전 관리 초보자부터 협업까지

📅 2025년 8월 7일 ⏱️ 6분 읽기 ✍️ kimyido

Git은 왜 필요한가?

상황 1:

파일명: project.py
파일들: project_v1.py, project_v2.py, project_final.py, project_real_final.py
→ 어디가 최신본이지? 🤷

> 핵심 요약: 이 글에서 가장 중요한 내용을 먼저 확인하세요.

상황 2:

당신과 동료가 같은 파일을 수정했는데, 누구 것을 쓸지 모를 때

해결책: Git!

Git의 3가지 핵심 개념

1. Repository (저장소)

프로젝트의 모든 파일과 히스토리를 저장하는 곳
- 로컬 저장소 (내 컴퓨터)
- 원격 저장소 (GitHub, GitLab)

2. Commit (커밋)

"지금의 코드 상태를 저장한다"는 의미
변경 내용 + 메시지 + 타임스탬프 + 작성자 기록

3. Branch (브랜치)

프로젝트의 "분기"
예: 새 기능 개발 중에 기존 코드 수정 필요 → 브랜치 분리
    기존 코드 수정 (main)
    새 기능 개발 (feature/new-feature)

Git 10가지 필수 명령어

1. git config (설정)

git config --global user.name "Your Name"
git config --global user.email "your@email.com"

2. git init (시작)

git init  # 새 로컬 저장소 만들기

3. git clone (복제)

git clone https://github.com/user/repo.git  # GitHub 프로젝트 다운로드

4. git add (준비)

git add file.py  # 특정 파일 추가
git add .        # 모든 변경 파일 추가

5. git commit (저장)

git commit -m "기능 추가: 로그인 화면"

좋은 커밋 메시지:

❌ "수정"
✅ "사용자 인증 기능 추가"
❌ "asdf"
✅ "데이터베이스 연결 버그 수정"

6. git push (업로드)

git push origin main  # 로컬 변경사항을 GitHub으로 업로드

7. git pull (다운로드)

git pull  # GitHub의 최신 버전을 다운로드

8. git status (상태 확인)

git status  # 현재 상태 확인 (수정된 파일 등)

9. git log (히스토리)

git log  # 커밋 히스토리 보기
git log --oneline  # 간단한 버전

10. git branch (브랜치 관리)

git branch  # 현재 브랜치 확인
git branch feature/login  # 새 브랜치 생성
git checkout feature/login  # 브랜치 이동
git merge feature/login  # 브랜치 병합

Git 워크플로우 (개인)

1. 파일 수정
   ↓
2. git add (변경된 파일 스테이징)
   ↓
3. git commit (메시지와 함께 저장)
   ↓
4. git push (GitHub에 업로드)

Git 워크플로우 (팀 협업)

메인(Main) 브랜치 (배포 준비된 코드)
  ↑
개발자 A: feature/login 브랜치 (로그인 기능)
개발자 B: feature/dashboard 브랜치 (대시보드 기능)
개발자 C: bugfix/payment 브랜치 (결제 버그 수정)
  ↓
Pull Request (코드 검토 후 병합)
  ↓
메인에 통합

GitHub 협업 기초

1. Pull Request (PR) 요청하기

내 브랜치 → GitHub에서 "Create Pull Request" 버튼
내용:
  - 뭘 수정했는지 설명
  - 관련 이슈 번호 (있으면)

2. Code Review (코드 검토)

PR을 받은 사람:
  - 코드 검토
  - 피드백 제시
  - 승인 또는 거절

코드 작성자:
  - 피드백 반영해 수정
  - 재검토 요청

3. Merge (병합)

검토 완료 → "Merge" 버튼 클릭
메인 브랜치에 새로운 기능 추가됨

자주 일어나는 실수와 해결법

실수문제해결
add 안 함파일이 업로드 안 됨git add . 먼저
commit 메시지 없음뭘 수정했는지 안 보임명확한 메시지 작성
main에서 직접 수정다른 사람과 충돌브랜치 생성해서 작업
merge 충돌같은 파일을 수정하면 충돌수동으로 합치기
권한 없음GitHub push 거절SSH key 또는 token 설정

4주 Git 마스터 계획

1주: 기본 개념 & 로컬 저장소

  • Git 설치
  • 개념 이해
  • 로컬에서 커밋 30개 이상

2주: GitHub 시작

  • GitHub 가입
  • 새 저장소 생성
  • push/pull 연습

3주: 브랜치 & 워크플로우

  • 브랜치 생성/전환/병합
  • PR 만들기
  • 실제 프로젝트에서 연습

4주: 팀 협업 시뮬레이션

  • 친구와 협업 프로젝트
  • PR 요청/검토
  • 충돌 해결 연습

자주 묻는 질문 (FAQ)

Q. Git과 GitHub의 차이는?

A. Git은 프로그램, GitHub은 Git을 사용하는 웹 플랫폼. Git은 GitLab, Bitbucket도 사용 가능.

Q. 배치파일 (log 파일)도 Git에 추가해야 하나?

A. 아니요. .gitignore 파일에 추가해 무시하기. 보안과 저장소 크기.

Q. 커밋을 취소하려면?

A. git revert <커밋번호> (이미 push한 경우) 또는 git reset (로컬만)

Q. 얼마나 자주 커밋해야 하나요?

A. 기능 단위로: 한 기능 구현하면 커밋. 최소 1일 1회.

Q. 큰 파일은 어떻게?

A. Git에는 부적합. AWS S3, Google Drive 등 별도 저장소 사용.

추천 학습 자료

  • 공식 문서: git-scm.com (무료, 영어)
  • 유튜브: "Git & GitHub Crash Course" (무료)
  • 인프런: "Git 완벽 가이드" (49,500원)
  • 연습: GitHub에서 오픈소스 프로젝트 contribute
  • 마치며

    Git은 모든 개발자의 필수 기술입니다. 막히는 부분이 있어도 괜찮습니다. 계속 사용하다 보면 자연스럽게 익혀집니다!

    관련 글:

    ✍️
    김이도 편집팀
    정확한 정보 전달을 위해 전문 자료와 공식 통계를 기반으로 콘텐츠를 작성합니다. 최신 정보 반영을 위해 주기적으로 업데이트됩니다.
    📅 최종 업데이트: 2025년 8월 7일 · 📧 문의: 연락하기
    📚 교육/자기계발 카테고리 전체 글 보기 →