recursive merge strategy

2023. 6. 28. 17:26Git

Merge made by the recursive strategy.라는 메시지는 Git이 브랜치 merge 작업을 수행할 때 사용한 merge 전략 을 알려주는 출력입니다.

 

🔧 recursive merge 전략이란?

recursive는 Git의 기본 merge 전략으로, 두 개의 브랜치가 공통 조상을 가질 때 3-way merge를 수행하는 전략입니다.

🔁 요약하면:

  • Git이 merge 하려는 두 브랜치가 하나의 공통 조상(base commit) 을 가지면,
  • 그 조상과 두 브랜치를 비교해서,
  • 3-way merge 방식으로 새로운 merge 커밋을 생성합니다.

✅ 예시 상황

git merge feature
  • 현재 브랜치가 main이고, feature 브랜치를 merge 하려고 할 때,
  • 두 브랜치의 공통 조상이 있는 경우, Git은 자동으로 recursive 전략을 선택합니다.
Auto-merging src/main.java
Merge made by the 'recursive' strategy.

 

📌 왜 recursive라고 부르나요?

  • 이 전략은 내부적으로 재귀적으로(Recursively) merge을 수행합니다.
  • merge 충돌이 복잡한 경우, 서브 트리(sub-tree) 단위로 다시 3-way merge을 수행하면서 깊이 있게 조정합니다.
  • 예를 들어, 공통 조상이 여러 단계 중첩되어 있을 경우에도 적절히 처리할 수 있습니다.

 

🧠 추가 전략들

Git에는 recursive 외에도 다음과 같은 merge 전략이 존재합니다:

전략 이름 설명
resolve 간단한 3-way merge만 지원. 복잡한 merge엔 적합하지 않음.
recursive 기본 전략. 대부분의 경우 자동 사용됨.
octopus 3개 이상의 브랜치를 동시에 merge할 때 사용됨.
ours merge 충돌 시 현재 브랜치의 변경 사항을 우선함.
subtree 하위 저장소(subtree)를 merge할 때 유용.

 

🔎 강제로 merge 전략 지정하려면?

git merge -s recursive feature
  • -s 옵션으로 merge 전략을 직접 지정할 수 있습니다.

'Git' 카테고리의 다른 글

git diff  (0) 2023.12.12
Tracking branch와 Upstream  (0) 2023.06.30
ort merge strategy  (0) 2023.06.28
git checkout  (0) 2023.06.28
git rebase 시, --continue 옵션 사용  (0) 2023.06.28