Git 브랜치 병합 전략 비교: merge, rebase, cherry-pick


1. 기본 개념 요약

명령어

설명

merge

브랜치 간 변경사항을 병합, 병합 커밋 생성

rebase

커밋 기반을 다른 브랜치 위로 옮겨 이력 재정렬

cherry-pick

특정 커밋만 골라 현재 브랜치에 복사


2. 명령어별 상세 설명

git merge <브랜치명>

git checkout main        # 병합 대상 브랜치
git merge feature/login  # 병합할 소스 브랜치

git rebase <브랜치명>

git checkout feature/login
git rebase main

git cherry-pick <커밋해시>

git checkout main
git cherry-pick 7a1f3b2

3. 커밋 이력 비교

merge

A---B---C---M       (main)
     \     /
      D---E         (feature)

rebase

A---B---C---D'---E' (feature rebased onto main)

cherry-pick

main:    A---B---C---E'
feature:           D---E

4. 적합한 상황

상황

추천 명령어

팀 프로젝트에서 병합 이력 유지

merge

개인 작업 커밋 정리

rebase

특정 버그 수정만 따로 반영

cherry-pick


5. 주의사항


6. 추가 명령어: revert, reset, stash

명령어

역할

주 사용 목적

revert

특정 커밋을 취소하는

새 커밋 생성

실수한 커밋을 안전하게 되돌림

reset

커밋 이력/스테이징/작업 폴더 상태를 되돌림

브랜치나 파일을 과거 상태로 복구

stash

현재 작업을 임시로 저장

급히 브랜치를 바꿔야 할 때

# revert: 안전한 취소
git revert <커밋 해시>

# reset: 이력 되돌리기
git reset --soft HEAD~1   # 커밋만 되돌림
git reset --hard HEAD~1   # 작업 내용까지 삭제

# stash: 현재 작업 저장
git stash
git stash pop



Revision #7
Created 21 May 2025 01:53:07 by Dain
Updated 4 July 2025 13:30:00 by Dain