wiki:glossary:development_tools:git:merge
목차
Merge
Merge(병합)는 Git에서 두 개 이상의 브랜치를 하나로 합치는 작업입니다.
📖 정의
Merge는 서로 다른 브랜치의 변경사항을 하나의 브랜치로 통합하는 과정입니다. Git은 자동으로 병합을 시도하지만, 충돌이 발생하면 수동으로 해결해야 합니다.
🔄 병합 유형
Fast-forward Merge
- 단순한 병합
- 히스토리가 선형적
- 충돌 없음
Three-way Merge
- 병합 커밋 생성
- 두 브랜치의 공통 조상 사용
- 복잡한 병합에 사용
Squash Merge
- 여러 커밋을 하나로 압축
- 깔끔한 히스토리 유지
- 기능 단위로 정리
🚀 기본 명령어
# 현재 브랜치에 다른 브랜치 병합 git merge feature-branch # Fast-forward 방지 (병합 커밋 강제 생성) git merge --no-ff feature-branch # Squash 병합 git merge --squash feature-branch # 병합 취소 git merge --abort # 병합 상태 확인 git status
⚠️ 병합 충돌
충돌 발생 상황
- 같은 파일의 같은 줄을 수정
- 한 브랜치에서 파일 삭제, 다른 브랜치에서 수정
- 파일 이름 변경 충돌
충돌 해결 과정
# 1. 병합 시도 git merge feature-branch # 2. 충돌 파일 확인 git status # 3. 충돌 파일 수동 편집 # <<<<<<< HEAD # 현재 브랜치 내용 # ======= # 병합할 브랜치 내용 # >>>>>>> feature-branch # 4. 해결 후 스테이징 git add conflicted-file.txt # 5. 병합 완료 git commit
🎯 병합 전략
Merge 전략
- 히스토리 보존
- 브랜치 구조 유지
- 복잡한 히스토리
Rebase 전략
- 선형 히스토리
- 깔끔한 구조
- 히스토리 재작성
🛠️ 고급 병합 기법
부분 병합
# 특정 파일만 병합 git checkout feature-branch -- specific-file.txt git commit -m "Merge specific file from feature-branch"
체리픽
# 특정 커밋만 가져오기 git cherry-pick commit-hash
🔗 관련 용어
- Git - 버전 관리 시스템
- Branch - 브랜치
- Commit - 커밋
- Pull Request - 풀 리퀘스트
📚 관련 문서
wiki/glossary/development_tools/git/merge.txt · 마지막으로 수정됨: 저자 127.0.0.1