git rebase와 git merge의 차이점

Pure·2025년 4월 5일

git & github

목록 보기
1/2
post-thumbnail

git rebase와 git merge의 차이점

다음의 이미지에서 A는 main branch, B는 기능을 구현하는 feat branch라고 생각하자.

📌Merge

merge는 브랜치를 합칠 때, 고려할 수 있는 가장 기본적인 옵션이다.

위와 같은 상황에서 merge를 사용한다면, (A2, B2, A4)를 모두 고려한 C3가 생성된다. (3가지의 commit을 고려하기에 3-way merge라고 부른다.)

git checkout A
# A branch에 B branch를 병합
git merge B

위와 같이 branch의 갯수가 적은 상황에서는 문제가 되지 않으나, branch의 갯수가 많은 상황에서는 commit graph가 복잡해지는 문제점이 있다.

📌Rebase

rebase는 현 branch를 기반을 다른 branch로 옮기는 것이다.

merge와는 다르게 1개의 branch로 합쳐짐에 따라 깔끔하게 정리되었다.

git checkout B
# A 브랜치를 기준으로 B를 rebase
git rebase A

git checkout A
# B 브랜치를 기준으로 A를 rebase
git rebase B

장단점

결론

merge는 협업 시에도 merge conflit를 관리하기 비교적 단순하지만, 커밋 기록이 복잡해질 수 있다.
rebase는 커밋 기록을 깔금하게 정리할 수 있다. 그러나 커밋 기록이 사라지며, 다른 사람이 사용하는 branch를 rebase할 경우 문제가 생길 수 있.

사진 출처: https://ainayoon.tistory.com/15

profile
Clean Code를 위한 한 걸음

0개의 댓글