[Git] GitHub에서 Squash Merge로 프로젝트 히스토리 깔끔하게 정리하기

2024. 7. 7. 00:37Git

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

반응형

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)을 생성합니다.

 

 

[Git] GitHub에서 Pull Request(PR) 올리는 방법: 초보자를 위한 안내

GitHub은 소프트웨어 개발에서 핵심적인 역할을 하는 플랫폼으로, 오픈 소스부터 기업용 프로젝트까지 다양한 협업 공간으로 자리 잡고 있습니다. 그중에서도 Pull Request(PR)는 프로젝트에 기여하

dev-chim.tistory.com

 

 

2. Squash and merge 옵션 선택

팀원들의 코드 리뷰 및 승인이 된 후, Squash and merge 옵션을 선택하여 PR을 병합합니다.

 

Squash and merge 옵션을 선택하기

 

 

3. 병합(merge) 결과

main 브랜치feature 브랜치의 모든 변경 사항이 하나의 커밋으로 병합됩니다.

 

 

Squash Merge 장단점

Squash Merge는 여러 개의 작은 커밋을 하나로 합쳐 깔끔한 히스토리를 유지하고, 코드 리뷰를 용이하게 하며, 롤백을 간단하게 해주는 장점이 있습니다. 그러나 세부 히스토리를 잃어 특정 변경 사항을 추적하기 어려워지고, 협업 시 충돌 관리가 복잡해질 수 있는 단점도 있습니다. 이와 같이 Squash Merge는 히스토리 관리와 코드 리뷰에 유용하지만, 세부 히스토리 손실과 협업 복잡성 증가를 고려해야 합니다. 프로젝트의 성격과 팀의 협업 방식을 평가하여 Squash Merge를 적절히 활용하는 것이 중요합니다.

 

 

 

 

Squash Merge는 깔끔한 커밋 히스토리를 유지하고 코드 리뷰를 쉽게 하기 위해 매우 유용한 도구입니다. 하지만 모든 상황에 적합한 것은 아니므로, 필요에 따라 적절한 병합 전략을 선택하는 것이 중요합니다. 이렇게 Squash Merge의 개념과 사용 방법에 대해서 알아보았습니다.

 

 

 

 

[macOS] 메모(Memo)에서 PDF 파일로 변환하는 간단 방법

Mac OS에서 메모장을 사용하여 작성한 파일을 PDF 형식으로 내보내는 방법에 대해 알아보겠습니다. 메모장에서 PDF 파일로 내보내는 방법PDF 파일 형식은 문서를 안전하게 저장하고 다양한 디바이

dev-chim.tistory.com

 

 

[Utility] Photopea : Content-Aware 기능으로 객체 손쉽게 제거하기

Photopea의 Content-Aware 기능은 작은 결함들을 보정하는 데 있어 손쉽게 도와주는 기능입니다. 이 기능을 통해 작업의 결과물을 보다 완성도 있게 만들 수 있는데요~ 이 기능에 대해서 알아봅시다.

dev-chim.tistory.com

 

 

[AI] 손필기는 이제 그만! 클로바 노트(CLOVA Note)의 음성 메모 혁신을 경험하세요!

클로바노트는 음성인식, 자연어 처리 등의 AI 기술을 활용한 회의록 관리 서비스입니다. 이 서비스는 긴 문장과 비정형화된 대화를 인식하는 데 특화된 음성인식 엔진을 사용하며 참석자의 목소

dev-chim.tistory.com

 

 

[CSS] 워드(Word)에서 텍스트 배치와 유사한 레이아웃을 CSS의 float 속성으로 적용하기

float 속성을 활용함으로써 웹 페이지의 구성 요소들을 자유롭게 배치하고 조합할 수 있으며, 창의적인 디자인을 구현하는 데에 큰 도움이 됩니다. float 속성에 대해서 알아보도록 합시다. float

dev-chim.tistory.com

 

 

[npm] npm 버전 확인, 초기화, 설치 및 옵션, 삭제 등 기본 사용법

npm(node package manage)는 cdn 방식으로 패키지를 가져와서 사용하는 것이 아니라, 모듈화 된 패키지를 node 환경에서 쉽고 간편하게 설치하고 버전 관리할 수 있는 자바스크립트 패키지 매니저입니다.

dev-chim.tistory.com

 

 

반응형