[Git] branch merge란?

Jun·2024년 3월 25일
0

Git

목록 보기
1/1
post-thumbnail

branch

여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능이다.

독립적으로 어떤 작업을 진행하기 위한 개념

브랜치를 나누지 않으면, 여러 사람이 commit할 경우 충돌이 일어날 확률이 높다. 또한, 서로 작업한 commit 내역을 내 로컬 repo에 계속 반영해야 한다!

branch merge

현재 branch에서 다른 branch를 합칠 때 사용한다.

Create a merge commit

각각의 branch에 남은 commit을 히스토리에 그대로 남긴다.

commit 이력을 모두 남겨야 할 때 사용한다.

git merge {머지할 브랜치}

Squach and merge

개발용 branch에 있던 내용을 하나로 합쳐서 중앙 branch에 하나의 commit으로 저장하는 전략

기존 변경사항들의 상세내용보다, merge 자체에 목적을 두고 사용한다.

다만, 개발용 branch에서 어떤 코드를 언제 바꿨는지에 대해 헷갈릴 수 있으므로 주의!

git merge --squash

Rebase and merge

Rebase라는 기능을 이용한다.

히스토리의 Base를 직접 옮겨서 처리하는 방식이므로, 개발용 branch에서 변경한 내용을 중앙 branch에서 변경한 것처럼 바꿔버릴 수 있다!

Merge commit이 없으므로, 어느 시점에 Merge가 되었는지 나중에 판단하기 어렵다.

git merge -ff

그래서, 뭐가 더 좋나요?

특정 기능 개발 후 develop branch에 머지하려고 하면, Squash and Merge가 유용하다.

develop branch를 production branch로 merge하고자 할 때는 develop branch에 분기가 남아있다면, production branch는 간결하게 유지하고자 Rebase and Merge가 유용하다.

참고

https://ssocoit.tistory.com/273

profile
열심히 아자아자

0개의 댓글