본문 바로가기

programming/git

## Git rebase VS git merge


### Git merge

>merge & rebase
두 명령어 모두 개별 브랜치에서 발생한 변화들을 다른
두 명령어 모두 하나의 브랜치에서 발생한 변화들을 다른 브랜치로 통합하기 위해 사용 ⇒ 결과는 같지만 이 방식이 다른 것


💡 Merge Problems
- 불필요한 merge commit 생성 : 모든 feature branch 마다 “merge commit” 이 남습니다. branch history가 지저분해지기 쉽습니다.
- 복잡한 프로젝트 history
독립된 브랜치에서 로직 하나를 작성하고 수정하더라도 history가 복잡하다고 표현합니다.


### git rebase

- 불필요한 commit 제거
- 같은 작업을 진행한 commit끼리 모으기
- 단점 : 각각 커밋 하나하나마다 컨플릭트 발생할 수도…

업데이트 하기전 메인과 rebase squash
하고 난 후(메인과 브랜치의 커밋을 하나로 합쳐줌) ⇒ 그 이후 메인 최신화하면 컨플릭트를 하나만 해결할 수 있음