Git Merge

GwangSoo·2024년 8월 16일
1

개인공부

목록 보기
6/34
post-thumbnail

협업을 하다보면 브렌치를 생성하고, 해당 브렌치에서 작업 후 Pull Request를 생성한다.

이때 Pull Request에서 merge를 하려고 할 때 3가지 방법이 있다.

github

이번 글에서는 위 3가지 방법에 대해 알아보고자 한다.

Create a merge commit

가장 기본적인 Merge이고, Fast-ForwardRecursive 방식으로 나뉜다.

Fast-Forward

Fast-Forward

출처: 코딩애플

Pull Request를 실행하는 시점의 main 브렌치가 new 브렌치를 생성한 시점의 main과 차이가 없다면, new 브렌치가 main 브렌치로 바뀌는 것을 의미한다.

만약 Recursive 방식을 적용하고 싶다면 git merge--no-ff옵션을 추가하면 된다.

Recursive

Recursive

출처: 코딩애플

Pull Request를 실행하는 시점의 main 브렌치가 new 브렌치를 생성한 시점의 main과 차이가 있다면, 새로운 commit을 하나 생성하여 해당 commit에 변경 사항을 합친다.

3-way-merge라고도 불린다.

Squash and merge

Squash

출처: 코딩애플

new 브렌치에 있던 모든 commit 내용을 하나의 commit으로 묶어서 main에 합친다.

Rebase and merge

Rebase

출처: 코딩애플

new 브렌치의 base를 main의 최신 commit으로 잡고 new 브렌치의 모든 commit을 그대로 main으로 옮긴다.

공부하며 느낀점

항상 merge 하기 전에 위 옵션들이 궁금하기는 했지만, 내용이 어려울 것 같아서 시작이 어려웠다.

하지만 막상해보니 어렵지 않은 개념이었고 상황에 따라 merge 전략을 잘 짜서 사용해야겠다.

참고

0개의 댓글