자바칩

Fast-Forward 병합 본문

Study

Fast-Forward 병합

아기제이 2025. 7. 17. 16:03
728x90

Fast-Forward 병합이란?

Fast-Forward 병합은 Git에서 두 브랜치를 병합할 때,
단순히 브랜치 포인터만 앞당기기만 해도 병합이 되는 경우를 말합니다.

 

전제 조건:

  • 현재 병합 대상 브랜치(예: main)가 다른 브랜치(예: develop)의 조상(commit ancestor)인 경우에만 가능
  • 즉, develop이 main을 기준으로 리베이스된 상태여야 함

 

○ Fast-Forward가 가능한 상황

# 병합 전 커밋 구조
main:     A---B---C
                  \
develop:           D---E---F

 

이 상태에서 git checkout main → git merge develop을 하면

# 병합 후 결과 (fast-forward)
main:     A---B---C---D---E---F
develop:                     ↑
                             |
                         (동일 커밋)

 

병합 커밋이 없이 main 포인터가 develop 브랜치 커밋 끝으로 "앞으로 당겨짐"
즉, 마치 main이 develop을 따라잡은 것처럼 됩니다.

 

 

 특징

항목 설명
병합 커밋 있음? 없음 (커밋 히스토리 깔끔)
충돌 가능성? 낮음 (이미 같은 히스토리 기반)
Git log 보기 쉬움? 매우 쉬움 (직렬 구조)
주로 언제 발생? rebase 후 merge 할 때, 또는 feature 브랜치 짧게 쓸 때