recursive merge strategy
2023. 6. 28. 17:26ㆍGit
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 |