사용자 도구

사이트 도구


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, 버전 관리

wiki/glossary/development_tools/git/merge.txt · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki