티스토리 뷰

프로그래밍/git

[git] Merge vs Rebase

gguldh 2018. 7. 23. 11:10

새로운 이슈를 처리할 때 새 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
댓글
최근에 올라온 글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31