HEEYEON'S BLOG

💻 개발

#Git

Git 세가지 Merge 비교하기

Git의 Merge 전략을 알아보자

2025년 01월 15일

Merge에 전략이 있다

Github에서 Pull Request를 할 때 병합 부분을 본다면, 세 가지 방식이 있는 걸 확인할 수 있어요.
Create a merge commit, Squash and merge, Rebase and merge로 볼 수 있죠.

Create a merge commit 예시

Merge를 이해하려면 먼저 Commit을 이해해야 합니다.

Commit이 정확히 뭐지?

Commit파일이나 폴더의 추가, 변경 사항을 저장소에 기록하는 행위입니다.

Commit들이 쌓여서 Commit History가 만들어지고,
Commit History를 통해 저장소에서 벌어진 기록을 볼 수 있어요.

Create a merge commit 예시

언제 어느부분이 어떻게 수정되고 누가 수정했는지 까지 기록을 볼 수 있기 때문에 협업에서도 굉장히 유용합니다.

그럼 이제 세 가지의 Merge 전략을 살펴봅시다.


Create a merge commit

기본 Merge인 Create a merge commit은 말그대로 병합 커밋을 한번 더 남기고,
모든 커밋을 히스토리에 그대로 기록합니다.

Create a merge commit 예시

따라서 더욱 기록을 자세히 볼 수 있어요.

Squash and merge

Squash and merge는 하나의 Pull Request의 커밋들을 하나로 뭉쳐서 병합하는 방식이에요.

모든 커밋을 보여주지 않아서 한눈에 자세히 확인하기는 힘들 수 있어도,
커밋이 너무 많이 쌓여있어서 길어진다거나, 작업 브랜치가 많을 때의 병합 상황을 편하게 볼 수 있습니다.

Create a merge commit 예시

Rebase and merge

Rebase and merge개발 브랜치에서 변경한 내용을 중앙 브랜치에서 한 것처럼 보이게 할 수 있어요.

한 줄로 히스토리가 남아서 깔끔하고 이쁘다는 장점이 있지만,
언제 병합을 했는지 알아보기 힘들다는 단점이 있어요.

Create a merge commit 예시

개발용 브랜치의 커밋을 똑 떼어다가 붙이는 방식이랍니다.


개인적으로는 화려한 히스토리를 좋아하기에 난 기본 전략을 좋아한다는..

© 2024.

Heeyeon Lee

all rights reserved.