2024. 7. 7. 00:37ㆍGit
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Git의 다양한 병합(merge) 방법 중 하나인 Squash Merge에 대해 알아봅시다.
Squash Merge (스쿼시 머지) 란?
여러 커밋을 하나의 커밋으로 압축(squash)하여 병합하는 Git의 기능입니다. 이를 통해 개발 브랜치에서 작업한 여러 개의 작은 커밋을 한 번에 메인 브랜치에 병합할 수 있습니다. 이 방법은 깔끔한 커밋 히스토리를 유지할 수 있게 합니다.
다이어그램을 통해 Squash Merge 이해하기
기본 main 브랜치에서 feature 사본 브랜치를 생성하여 작업을 시작합니다. feature 브랜치에서 여러 개의 커밋을 생성합니다.
main: A---B---C
\
feature: D---E---F
feature 브랜치의 모든 커밋을 하나의 커밋으로 합쳐서 main 브랜치에 병합(merge)합니다. 이 과정을 통해 main 브랜치에는 하나의 새로운 커밋이 추가됩니다.
main: A---B---C-------G
\ /
feature: D---E---F
Github에서 Squash Merge 수행하는 방법
1. Pull Request(PR)을 생성
feature 브랜치에서 작업을 완료한 후, 이를 main 브랜치에 병합(merge) 하기 위한 Pull Request(PR)을 생성합니다.
2. Squash and merge 옵션 선택
팀원들의 코드 리뷰 및 승인이 된 후, Squash and merge 옵션을 선택하여 PR을 병합합니다.
3. 병합(merge) 결과
main 브랜치에 feature 브랜치의 모든 변경 사항이 하나의 커밋으로 병합됩니다.
Squash Merge 장단점
Squash Merge는 여러 개의 작은 커밋을 하나로 합쳐 깔끔한 히스토리를 유지하고, 코드 리뷰를 용이하게 하며, 롤백을 간단하게 해주는 장점이 있습니다. 그러나 세부 히스토리를 잃어 특정 변경 사항을 추적하기 어려워지고, 협업 시 충돌 관리가 복잡해질 수 있는 단점도 있습니다. 이와 같이 Squash Merge는 히스토리 관리와 코드 리뷰에 유용하지만, 세부 히스토리 손실과 협업 복잡성 증가를 고려해야 합니다. 프로젝트의 성격과 팀의 협업 방식을 평가하여 Squash Merge를 적절히 활용하는 것이 중요합니다.
Squash Merge는 깔끔한 커밋 히스토리를 유지하고 코드 리뷰를 쉽게 하기 위해 매우 유용한 도구입니다. 하지만 모든 상황에 적합한 것은 아니므로, 필요에 따라 적절한 병합 전략을 선택하는 것이 중요합니다. 이렇게 Squash Merge의 개념과 사용 방법에 대해서 알아보았습니다.
'Git' 카테고리의 다른 글
[Git] git rebase 취소하는 방법에 대해서 알아보자 (feat. git reflog, git reset) (2) | 2024.12.19 |
---|---|
[Git] PR 커밋 해시를 활용한 브랜치 생성 : 쉽고 간단한 가이드 (0) | 2024.10.23 |
[Git] 2가지 방법으로 변경사항 가져오기 (feat. git checkout, git cherry-pick) (2) | 2024.03.24 |
[Git] Git Stash : 변경사항을 임시로 저장하는 방법 (1) | 2024.03.20 |
[Git] Git 리베이스: 작업 브랜치의 변경 사항을 최신 상태로 유지하는 방법 (0) | 2024.03.19 |