본문 바로가기
IT SW 지식 및 기타/git

git study note (14) branch 3 - 가지를 합치는 두 가지 방법 merge vs rebase

by 혀니쌤1 2022. 3. 18.

목차

    가지 분산

    지난번에는 main 브랜치에서 사이드 브랜치를 만드는 법. 각자 브랜치에서 각기 다른 수정과 커밋을 해서 가지치기를 하는 법을 배웠다.

    이번에는 뻗어나갔던 가지들을 합치는 방법 개요에 대해 공부해보자. 

     

    가지 치기도 중요하지만 이 것을 합치는 것을 잊어서는 안된다. 실험이 끝났다면, 주 브랜치에 적용시키는 것이 필요하니까~

    이제 메인 브랜치는 재규어팀과 퓨마팀도 가지고, 새로운 멤버와 코치도 가질 것이다.

     

    가지 합치기

     

    그런데 가지를 합치는데는 2가지 방법이 있다. MERGE & REBASE

    main에서 분산된 add coach branch (초록색)는 merge로 main에 붙이고

    이후 new team branch (분홍색)는 rebase로 main에 붙여보자.

     

    그런데, merge와 rebase가 무엇이 다를까?

     

    MERGE

    merge는 (번역하면 병합) 갈라진 가지를 커밋으로 이어 붙이는 것이다.

    노란색 점 기준으로 파란색 브랜치의 변경사항과 초록색 브랜치의 변경사항이 모두 적용되는 것이다.

    또한, 아래 그림처럼 메인 브랜치에서 갈라졌다가 다시 메인 브랜치로 합쳐지는 가지의 기록이 다 남는다. 

     

    REBASE

    반면에 rebase는 합체 보다는 잘라내어 붙여넣기에 더 가깝다. 그렇기 때문에 rebase 이후엔 가지친 기록이 없어진다. 

    노란색 점에다가 분홍색 커밋 2개를 하나 하나 추가해나가는 과정이라고 보면 된다. 

     

     

     

    즉, merge를 하나 rebase를 하나 최종 결과물은 같겠지만, 기록면에서 다르다고 보면 된다.