2주차 위클리 페이퍼🦦

이주영·2023년 12월 3일
0

Git에서 branch merge 방법들과 각 방법의 특징을 설명해 주세요.

merge를 하는 방식에는 fast-forword-merge와 3-way-merge가 있습니다.

  • fast-forword-merge

    fast forword merge는 가장 기본적인 merge 방법인데, 현재 브랜치의 head가 대상 브랜치의 head로 옮기는 merge입니다. git switch 명령어로 브랜치를 전환하고 git merge로 기존 브랜치의 head를 대상 브랜치의 head로 전환합니다.

A와 B branch가 있다고 가정해보고,
A branch -> B branch로 merge를 하려고 하는데
B가 A 이후의 커밋을 가리키고 있을 때
A는 단순히 B와 동일한 커밋을 가리키도록 이동합니다.
즉, 단순히 포인터를 최신 커밋으로 옮기는 것을 의미합니다.

  • 3-way-merge

3way merge는 서로 다른 브랜치에 공통된 조상인 base branch를 기점으로 충돌을 최소화시키는 방법입니다. merge를 할 때 각 브랜치의 마지막 커밋 두 개와, 브랜치의 공통 조상 커밋 총 3개의 커밋을 비교해서 새로운 커밋을 만들어 병합합니다.

Git Flow 브랜치 전략에 대해 설명해 주세요.

Git Flow는 크게 Main 브랜치, Develop 브랜치, Supporting 브랜치로 구분하여 브랜치를 관리합니다.
Supporting 브랜치는 또 Feature 브랜치, Release 브랜치, Hotfix 브랜치로 나뉩니다.

  • Main 브랜치

Main 브랜치는 출시 가능한 프로덕션 코드를 모아두는 브랜치입니다.
프로젝트를 시작할 때 생성되며 개발 프로세스 전반에 걸쳐 유지됩니다.

  • Develop 브랜치

버전 개발을 위한 코드를 모아두는 브랜치로, 개발이 완료되면 Main 브랜치로 머지됩니다.

  • Feature 브랜치

하나의 기능을 개발하기 위한 브랜치로 Develop 브랜치에서 생성하며,
기능 개발이 완료되면 Develop으로 머지됩니다.
주의할 점은 Fast-forword로 머지하지 않고 Merge Commit을 생성하며 머지를 해주어야 합니다. (히스토리가 특정 기능 단위로 묶일 수 있게)

  • Release 브랜치

소프트웨어 배포 준비를 위한 브랜치입니다. Develop 브랜치에서 생성하며,
버전 이름 등의 소소한 데이터를 수정하거나 배포 전에 자잘한 버그를 수정하기 위해 사용됩니다.
배포 준비가 완료되면 Main, Develop 브랜치에 둘 다 머지합니다.

  • Hotfix 브랜치

이미 배포된 버전에 문제가 생겼을 때 이 브랜치를 사용해 문제를 해결합니다.
Main 브랜치에서 생성하며, 문제 해결이 완료되면 Main, Develop 브랜치에 둘 다 머지합니다.

0개의 댓글