본문 바로가기
Git

git rebase의 장점, merge와 차이

by 이숴 2023. 3. 9.
반응형

git merge, rebase

팀으로 프로젝트를 하게되면 git flow로 브랜치를 관리를 하게된다.

 

git에서는 현재 branch에서 다른 branch로 합치는 방법이 2가지가 있다. merge와 rebase이다. 

 

필자는 merge를 많이 사용하다가 실무에서는 merge보다 rebase 옵션을 많이 사용한다고 들어서 rebase 옵션으로 브랜치를 관리하는 방법을 공부해 보았다.

 

merge

merge 옵션은 현 브랜치를 다른 브랜치와 합치는 방법으로, 브랜치에서의 작업을 마무리하고 main 브랜치와 코드를 병합하기 위해서 진행한다.

특징

merge로 브랜치를 병합하게 되면, commit history에서는 branch의 생김새가 브랜치 두개가 합쳐지는 것이기 때문에 2줄이상으로 이루어져 그려지게 된다. 하지만 다른 branch에서 변경사항이 생기면 이미 merge가 된 branch는 즉각 대응하기 어렵다.

merge 예시

 

rebase

merge 옵션과 병합 작업은 같지만, 두개의 branch에서 하나의 branch에 최신 커밋으로 base를 연결한다. base를 새로 설정하는 작업인 것.

특징

merge와 다르게 최신 변경사항에 반응하여 최신화가 가능하고, 개발중에도 팀원 개발자가 수정사항을 push하면 바로 반영이 가능하다.

그리고 간단한 commit history를 만들 수 있다. git merge는 2줄이상의 복잡한 history를 생성하지만 rebase는 base를 옮겨 작업하기 때문에 보통 하나의 브랜치만 남기 때문에 직관적인 commit history관리가 가능하다. 따라서 작은 오류도 요구되면 안되는 실무환경에서는 직관적인 rebase 옵션이 괜찮을 것이다.

rebase 예시

 

git flow

협업 과정에서 git flow를 처음 써보면서 직관적인 history 관리를 위해 공부해보았지만, 사내 개발팀별로 branch 전략이 다를 수 있기 때문에 merge와 rebase 둘다 이해하는것이 필요하다고 생각한다.

반응형

'Git' 카테고리의 다른 글

Git 커밋 메세지 컨벤션  (1) 2023.03.30

댓글