| 용어 | 의미 | 예시 |
|---|---|---|
| Repository | 프로젝트 저장소 | study-insupanda |
| Commit | 변경사항 저장 단위 | Phase 1.1 완료 |
| Branch | 작업 분기 | study/01-project-setup |
| Remote | 원격 저장소 | GitHub의 repository |
| Local | 로컬 저장소 | 내 컴퓨터의 repository |
main: A ← B ← C (안정된 버전)
↘
feature: D ← E ← F (새로운 작업)
# Phase별 브랜치 생성
git checkout -b study/01-project-setup # Phase 1 전체
git checkout -b phase1-3-env-config # 개별 작업
# 1. 작업 완료
git add .
git commit -m "Phase 1.1-1.2: 분석 완료"
git push origin study/01-project-setup
# 2. GitHub에서 PR 생성
# Compare & pull request 버튼 클릭
## 📋 작업 내용
- 구체적인 작업 1
- 구체적인 작업 2
## 🔍 변경 사항
- 추가된 파일
- 수정된 부분
## 📚 학습 성과
- 핵심 학습 내용 1
- 핵심 학습 내용 2
## 📈 진행 상황
- Phase X: Y% 완료
- 전체 프로젝트: Z% 완료
# Merge 전
main: A ← B ← C
feature: ↘ D ← E
# Merge 후
main: A ← B ← C ← M (merge commit)
↗ ↗
feature: D ← E
main: A ← B ← C ← M (merge commit)
↗ ↗
feature: D ← E
main: A ← B ← C ← S (압축된 하나의 커밋)
feature: D ← E (원본 유지)
main: A ← B ← C ← D' ← E' (선형 배치)
| 구분 | PR (Pull Request) | Merge |
|---|---|---|
| 목적 | 검토 요청, 소통 | 실제 반영 |
| 대상 | 리뷰어, 팀원 | Git 히스토리 |
| 상태 | 제안, 대기 중 | 완료, 반영됨 |
| 시점 | 작업 완료 시 | 승인 완료 시 |
# 둘 다 영구 보존됨!
GitHub → Pull requests → Closed # PR 기록
GitHub → Commits # Merge 기록
feat: 새로운 기능 추가
fix: 버그 수정
docs: 문서 수정/추가
style: 코드 포맷팅
refactor: 코드 리팩토링
test: 테스트 추가/수정
chore: 기타 작업
docs: 문서 분석/작성
study: 학습 내용 정리
analysis: 코드/구조 분석
review: 검토 및 정리
# 좋은 예시
docs: Phase 1.1-1.2 프로젝트 설정 분석 완료
study: RAG 시스템 아키텍처 학습 정리
# 나쁜 예시
Update files # 너무 모호
Fix stuff # 구체적이지 않음
WIP # 완료되지 않은 상태
# PR 내용 (상세함)
## 📋 작업 내용
## 🔍 변경 사항
## 📚 학습 성과
## 📈 진행 상황
# Merge 내용 (간결함)
간단한 요약
- 핵심 작업 1
- 핵심 작업 2
- 주요 결과
# 1. 프로젝트 클론
git clone https://github.com/username/repository.git
# 2. 새 브랜치 생성 및 전환
git checkout -b feature/new-branch
# 3. 작업 후 커밋
git add .
git commit -m "feat: 새로운 기능 추가"
# 4. 원격 저장소에 푸시
git push origin feature/new-branch
# Merge 후 로컬 동기화
git checkout main # main 브랜치로 전환
git pull origin main # 최신 내용 가져오기
git checkout feature-branch # 작업 브랜치로 복귀
git pull origin main # 작업 브랜치도 최신화
# 브랜치 목록 확인
git branch # 로컬 브랜치
git branch -r # 원격 브랜치
# 브랜치 삭제
git branch -d branch-name # 로컬 브랜치 삭제
git push origin -d branch-name # 원격 브랜치 삭제
# 브랜치 상태 확인
git status # 현재 상태
git log --oneline -5 # 최근 5개 커밋
cd /Users/moon/Desktop/study-insupanda
git status # 현재 상태 확인
git checkout main
git pull origin main
git checkout study/01-project-setup
git pull origin main
# 파일 분석 및 학습
# 문서 작성
git add .
git commit -m "docs: Phase 1.3 환경설정 파일 분석 완료"
git push origin study/01-project-setup
# GitHub에서 PR 생성
제목: docs: Phase 1.3 환경설정 파일 분석 완료
내용:
## 📋 작업 내용
- .env 파일 구조 분석
- .gitignore 설정 분석
- Docker 관련 파일 탐색
## 🔍 변경 사항
- README.md 업데이트
- 환경설정 분석 문서 추가
## 📚 학습 성과
- 환경변수 관리 방식 이해
- Git 무시 패턴 학습
## 📈 진행 상황
- Phase 1: 100% 완료 (3/3)
- 전체 WBS: 10% 완료 (3/30)
Commit message: docs: Phase 1.3 환경설정 파일 분석 완료
Extended description:
환경설정 파일 구조 및 역할 분석
- .env: 환경변수 관리 방식 파악
- .gitignore: 버전 관리 제외 패턴 학습
- Phase 1 완료: 프로젝트 설정 전체 이해
study/01-project-setup → Phase 1 전체 (1.1, 1.2, 1.3)
study/02-config-utils → Phase 2 전체
study/03-database → Phase 3 전체
장점: 관련 작업 묶음, 관리 단순
단점: PR이 커질 수 있음
phase1-1-requirements → 1.1만
phase1-2-pyproject → 1.2만
phase1-3-env-config → 1.3만
장점: 작은 PR, 빠른 리뷰
단점: 브랜치 관리 복잡
# 첫 작업은 통합, 이후 개별
study/01-project-setup → 1.1 + 1.2 (이미 완료)
phase1-3-env-config → 1.3 개별
phase2-1-config-folder → 2.1 개별
# 충돌 해결 후
git add .
git commit -m "resolve: merge conflict 해결"
git push origin branch-name
# 마지막 커밋 메시지 수정
git commit --amend -m "새로운 커밋 메시지"
# 아직 푸시 안한 경우만 사용!
# 삭제된 브랜치 복구
git reflog # 참조 로그 확인
git checkout -b 브랜치명 커밋해시 # 특정 커밋에서 브랜치 생성
# 강제 동기화 (주의!)
git fetch origin
git reset --hard origin/main
# 사용자 정보 설정
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 기본 에디터 설정
git config --global core.editor "code --wait"
# 줄바꿈 설정 (Windows)
git config --global core.autocrlf true
# 자주 사용하는 명령어 단축
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm commit
git config --global alias.lg "log --oneline --graph --all"
이 가이드는 실제 프로젝트 경험을 바탕으로 작성되었습니다. 계속 업데이트하며 사용하세요! 🚀