Git 완벽 마스터 | 버전 관리 초보자부터 협업까지
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은 모든 개발자의 필수 기술입니다. 막히는 부분이 있어도 괜찮습니다. 계속 사용하다 보면 자연스럽게 익혀집니다!
관련 글: