병합방식

박태영·2024년 6월 18일
0

git

목록 보기
26/44

fast-forward

  • a 브랜치에서는 작업이 이루어진것이 없고 b브랜치는 a브랜치의 자식
  • 두 브랜치를 병합할 때 새로운 커밋을 추가할 필요 없이 A브랜치의 HEAD를 B브랜치로 옮김으로써 병합 마무리
  • 필요에 따라 B 브랜치를 삭제.

장점

1. 깔끔한 히스토리

  • fast-forward merge는 병합 커밋을 생성하지 않으므로 히스토리를 시각적으로 깔끔하게 유지 가능

2. 간편함

  • 병합 커밋을 생성하지 않기 때문에 변경 사항을 통합하는 과정이 더 빠르고 간편

단점

히스토리 소실 위험

  • 병합 커밋이 생성되지 않으므로, 브랜치가 언제 병합되었는지를 명확히 알 수 없다.

제한된 사용

  • fast-forward merge는 병합하려는 브랜치가 다른 브랜치의 직계 조상일 때만 가능.

git merge --no-ff (병합할 브랜치명) 명령어로 fast-forward대신 3-way-merge를 사용할 수 있다.


3-way-merge

  • 각 브랜치에서 각각의 작업 내역이 있는경우 새로운 병합 커밋을 만들어서 병합하는 방식

장점

명확한 히스토리

  • 병합 커밋을 생성하여 두 개의 부모 커밋을 참조하는데 이를 통해 병합 과정과 관련된 모든 커밋의 히스토리를 명확하게 볼 수 있다

충돌 관리

  • 두 브랜치의 변경 사항을 통합하는 과정에서 발생할 수 있는 충돌을 명확하게 처리할 수 있습니다.

독립적인 브랜치 작업

  • 병합 대상 브랜치가 독립적으로 작업될 수 있어, 각 브랜치에서의 변경 사항을 유지하면서 병합할 수 있습니다.

단점

복잡한 히스토리

  • 많은 병합 커밋이 생성되면 히스토리가 복잡해질 수 있다.

추적 어려움:

  • 여러 병합 커밋이 존재할 경우, 특정 변경 사항이 언제, 왜 발생했는지를 추적하는 것이 어려울 수 있다.
profile
어른 아이

0개의 댓글

관련 채용 정보