Fast-forward는 브랜치가 직선적으로 진행된 경우 발생합니다. 이 경우 Git은 단순히 브랜치 포인터를 앞으로 이동시키는 방식으로 병합합니다.
장점:
단점:
사용 예:
git checkout main
git merge feature-branch
Recursive 전략은 기본 병합 방식으로, 두 브랜치 간의 공통 조상을 찾아 삼방 병합(three-way merge)을 수행합니다.
장점:
단점:
사용 예:
git checkout main
git merge --no-ff feature-branch
Squash는 여러 개의 커밋을 하나로 합쳐 병합하는 전략입니다. 이는 깔끔한 히스토리를 유지하는 데 유용합니다.
장점:
단점:
사용 예:
git checkout main
git merge --squash feature-branch
git commit -m "Feature implemented"
Rebase는 브랜치 기반을 다른 브랜치의 최신 커밋 위로 옮겨 히스토리를 직선화하는 전략입니다. Rebase 후 병합하면 히스토리가 더욱 깔끔하게 유지됩니다.
장점:
단점:
사용 예:
git checkout feature-branch
git rebase main
git checkout main
git merge feature-branch
--no-ff 병합을 사용해 병합 커밋을 명확히 남깁니다.squash나 rebase 전략을 활용해 불필요한 커밋을 제거합니다.merge --no-ff를 사용해 각 기능 개발의 독립성을 유지하는 것이 좋습니다.병합 시 충돌은 피할 수 없는 문제입니다. 충돌을 효율적으로 해결하기 위해서는 다음과 같은 전략을 따르는 것이 좋습니다.
git mergetool과 같은 도구를 활용하면 충돌 해결이 수월해집니다.