브랜치 merge 방법
1. Merge
- 작업한 브랜치를 메인 브랜치로 병합시키는 방법
$ git checkout master
$ git merge develop
(1) Fast-Forward
- base에 변경이 생기지 않았을 때 실행
-
develop
로 분기 이후master
에 새로운 커밋이 생기지 않고 최신 상태를 유지하고 있다면 병합시develop
의 커밋을 그대로 다 가져올 수 있다
(2) Recursive
- base에 변경이 일어 났을 때 실행
-
develop
로 분기 이후master
에 새로운 커밋이 생긴다면develop
병합시master
의 변경된 내용과 합쳐서 병합이 이루어 져야 한다 - merge 커밋 메시지를 작성
2. Squash & Merge
- 여러 개의 commit을 하나로 합쳐서 병합시키는 방법
-
develop
의 여러 commit을 합친 새로운 commit을 만들어master
에 추가된다
$ git checkout master
$ git merge --sqaush develop
$ git commit -m "squah & merge"
3. Rebase & Merge
- 메인 브랜치로 base를 변경해 병합시키는 방법
-
develop
의 base를master
로 변경해develop
의 커밋을master
의 최신 커밋 뒤로 추가한다 - rebase 후에 merge하는 과정이 필요하다
$ git checkout develop
$ git rebese master # REBASE
$ git checkout master
$ git merge develop
- feature 브랜치에서 dev 브랜치 rebase 후 force push
$ git checkout feat/abc-123
$ git rebase origin/dev
... Resolve Conflict
$ git push -f
<출처>
https://hudi.blog/git-merge-squash-rebase/