Git

[Git] branch 병합 (merge & rebase)

neck392 2024. 11. 3. 11:55

 branch를 나누어 작업한 이후에 결과물(변경 사항)을 합치는 것을 병합(merge)이라 한다.

branch를 통하여 작업 공간을 분리한 이후에 분리된 공간에서의 서로 다른 혹은 각 코드들을 융합한다.

 

각 branch에서 작업한 내용을 합치는 명령어로는 merge와 rebase가 있다. 두개의 branch를 하나로 합친다는 점에서 동작 방식은 매우 유사하지만 commit history 생성 결과가 달라진다는 것에서 큰 차이가 있으며 사용하는 용도 또한 다르다.

rebase는 해당 작업을 base로 만들기 때문에 협업 프로젝트에서는 신중하게 진행해야 한다.

 

merge

<merge 사용 예시>

 

협업을 위하여 작업 공간을 branch를 통하여 분리한 이후에 작업한 내용을 합치는 명령어이다. rebase와는 다르게 각 branch마다 commit history가 유지된다.

git merge <병합할 branch>

search branch에서 작업한 내용을 main branch로 합치고 싶을 때 main branch로 작업 공간을 전환한 이후에 "git merge search" 명령어를 수행해야 한다.

 

rebase

<rebase 사용 예시>

 

현재 branch에서의 commit history(내용)들을 다른 branch에 재배치한다. 즉, commit 기록이 각 branch에서 2개로 나누어 지지 않고 직선형으로 이어진다. 예를 들어 위 그림에서처럼 search branch에서 구현한 기능들에 대한 commit 내용들을 main branch에 유지하고 싶을 때 사용할 수 있다.

git rebase <병합할 branch>

search branch에 작업한 내용들을 main branch의 commit 기록에 유지하고 싶을 때에는 search branch로 작업 공간을 전환한 이후에 "git rebase main" 명령어를 수행한다.