Git Rebase vs Merge

이상민·2021년 8월 13일
0
post-thumbnail

git merge

  • source 브랜치의 커밋 이력을 target 브랜치에 통합시킨다

  • merge는 target 브랜치에만 영향을 주기 때문에 source 브랜치의 커밋 내역등은 그대로 유지된다

  • merge시에는 merge 커밋이 생성된다


git rebase

  • 말그대로 base를 다시 설정하는 명령어이다. 위 그림에서 feature 브랜치 입장에서 base는 master에서 갈라지기전 둘 다 가지고 있는 커밋이다. git rebase master을 한다면 master의 최신 커밋을 base로 브랜치를 병합한다

  • 이때 feature의 commit들은 새로 적용되기 때문에 같은 내용의 새로운 커밋을 한 뒤, rebase가 성공하면 기존 commit들을 삭제한다

  • 커밋이 새로 생기고 이전 커밋은 삭제되기 때문에, 다른 사람과 공유하지 않은 커밋들에 대해서만 rebase 해야한다


rebase vs merge

개인이나 작은 팀이라면 rebase를 사용하고 큰 팀이면 merge를 사용하는게 유리하다

rebase의 장점

  • 복잡한 내역을 간소화한다
  • merge 커밋 이력이 없다

merge의 장점

  • 간단하고 익숙하다
  • 모든 내역을 시간순으로 유지한다
  • 브랜치의 맥락을 유지한다

참고

https://stackoverflow.com/questions/9069061/what-is-the-difference-between-git-merge-and-git-merge-no-ff

https://www.perforce.com/blog/vcs/git-rebase-vs-merge-which-better

profile
편하게 읽기 좋은 단위의 포스트를 추구하는 개발자입니다

0개의 댓글