티스토리 뷰
새로운 이슈를 처리할 때 새 Branch를 생성하여 작업한 후 기존의 Branch에 병합하는 데 두가지 방법이 있다.
Merge (병합)
experiment라는 브랜치를 생성하여 작업을 함
master로 checkout 후 merge함
$ git checkout master
$ git merge experiment
Rebase (대화형 재배치)
experiment라는 브랜치를 생성하여 작업을 함
experiment에서 master를 rebase함
$ git checkout experiment
$ git rebase master
|
Merge |
Rebase |
특징 |
- branch를 생성한 시점의 베이스를 기준으로 합병 - branch의 최종 결과만을 가지고 합병 |
- 지정한 브랜치를 베이스로 기준 삼아 합병 - 트리 그래프에 브랜치 없이 일렬로 나타남 (중복된 수정 내용의 로그가 남지 않음) - 브랜치의 변경사항을 순서대로 다른 브랜치에 적용하면서 합병 |
장점 |
- 이해하고 사용하기 쉬움 - 원래 브랜치의 컨텍스트를 유지함 |
- 단순한 히스토리 - 여러 개발자들이 같은 브랜치를 공유할 때 커밋을 합치는 가장 직관적이고 깔끔한 방법 |
단점 |
- 변경사항이 그대로 남아있기 때문에 히스토리가 복잡해짐 |
- 커밋 순서대로 rebase를 하는데, 각 커밋마다 충돌해소를 순서대로 해주어야하여 복잡함 |
결론
여러 개발자들이 같은 브랜치를 공유할 때는 Pull & Rebase가 히스토리를 깔끔하게 유지하는데 좋다.
완료된 기능 브랜치를 다시 합칠때는 Merge를 사용한다.
'프로그래밍 > git' 카테고리의 다른 글
[git] Reset vs Revert (0) | 2018.07.23 |
---|---|
[git] Stashing (0) | 2018.07.23 |
[git] Squash - 여러개의 커밋을 하나로 (0) | 2018.07.23 |
git과 jira 연동하기 (0) | 2018.07.20 |
git과 git flow (0) | 2018.02.02 |