source 브랜치의 커밋 이력을 target 브랜치에 통합시킨다
merge는 target 브랜치에만 영향을 주기 때문에 source 브랜치의 커밋 내역등은 그대로 유지된다
merge시에는 merge 커밋이 생성된다
말그대로 base를 다시 설정하는 명령어이다. 위 그림에서 feature 브랜치 입장에서 base는 master에서 갈라지기전 둘 다 가지고 있는 커밋이다. git rebase master
을 한다면 master의 최신 커밋을 base로 브랜치를 병합한다
이때 feature의 commit들은 새로 적용되기 때문에 같은 내용의 새로운 커밋을 한 뒤, rebase가 성공하면 기존 commit들을 삭제한다
커밋이 새로 생기고 이전 커밋은 삭제되기 때문에, 다른 사람과 공유하지 않은 커밋들에 대해서만 rebase 해야한다
개인이나 작은 팀이라면 rebase를 사용하고 큰 팀이면 merge를 사용하는게 유리하다
https://www.perforce.com/blog/vcs/git-rebase-vs-merge-which-better