패스잇
소프트 스킬 · 중급

Git Merge, Rebase, Squash의 차이점과 각각의 사용 시나리오를 설명해주세요.

힌트 · Merge Commit 생성 vs 선형 이력, Squash로 커밋 정리, Rebase 후 Force Push 주의점을 설명해보세요.

Merge CommitCommit HistoryFast-forwardInteractive RebaseSquash Commit

모범답안

Git에서 Merge, Rebase, Squash는 브랜치를 합치는 방법이지만, 각각 다른 특징과 사용 시나리오를 가지고 있습니다.

Merge는 브랜치들을 합칠 때 Merge Commit을 생성하여 이력을 남깁니다. 히스토리를 중요하게 생각하고, 브랜치 작업 내역을 보존하고 싶을 때 사용합니다. 예를 들어, 기능 개발 브랜치를 main 브랜치에 합칠 때 사용할 수 있습니다.

Rebase는 브랜치의 시작점을 옮겨서 커밋 히스토리를 선형으로 만듭니다. 깔끔한 히스토리를 유지하고 싶을 때 유용하지만, 이미 공유된 브랜치에 Rebase를 하면 문제가 발생할 수 있으므로 주의해야 합니다. 특히 Force Push가 필요할 수 있습니다.

Squash는 여러 커밋을 하나의 커밋으로 합치는 기능입니다. 불필요하게 많은 커밋을 정리하거나, 의미있는 단위로 커밋을 묶을 때 사용합니다. 예를 들어, 기능 개발 브랜치에서 여러 개의 작은 커밋들을 하나의 완성된 기능 커밋으로 만들 수 있습니다. Interactive Rebase를 통해 Squash를 수행할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Git / 협업 면접 질문

← Git / 협업 면접 질문 전체 보기