본문 바로가기
IT/GIT.SVN

git rebase와 merge 차이

by 성준하이 2023. 3. 11.
반응형

Git에서 한 브랜치에서 다른 브랜치로 합치는 방법은 Merge와 Rebase가 있다.
둘을 실행해보게 되면 Merge와 Rebase의 실행결과는 같지만 커밋 히스토리가 달라진다.
Merge는 쉽고 안전하지만 커밋히스토리가 지저분할 수 있다 반면 Rebase는 잘 모르고 사용할 경우 위험할 수 있어 까다롭지만 커밋히스토리를 깔끔하게 관리할 수 있다.
Rebase는 base를 새롭게 설정한다는 의미로 이해하면 좋다.

 

Rebase와 Merge의 차이점

먼저 작업에 대해서는 아래 그림처럼 master와 experiment 가 각각의 형상으로 작업이 되어있다고 가정을 하면.

 

Merge로 통합하기

이 두 브랜치를 합치는 가장 쉬운 방법은 merge 명령을 이용해 3-way Merge로 새로운 커밋을 만들어내는 것이다
이 때 내부적으로 공통조상인 C2를 이용하게 된다.

 

Rebase로 통합하기

두 브랜치가 나뉘어 있는 아까와 같은 상황에서 시작을 한다.

experiment 브랜치로 이동해 master를 base삼아 Rebase 하겠다는 의미라고 이해하면 된다.

 

 

시작은 같지만 통합하는 과정에서 rebase는 변화된것을 기반 삼아서 바꾼다고 생각을 하도록 하면 쉽다.

 

git에 대한 내용은 아래 참고 포스팅에서 좀 더 알수 있다.

 


참고 포스팅

https://thenicesj.tistory.com/98

 

git / github ?

어제 포스팅에 젠킨스라고 소개를 하나 했었다. 궁금하신분들은 참고해주세요! 읽고 오시면 도움이 됩니다. https://thenicesj.tistory.com/97 Jenkins(젠킨스)란? 젠킨스는 소프트웨어 개발시 지속적으로

thenicesj.tistory.com

https://thenicesj.tistory.com/506

 

[git] commit 과 push 의 차이점

git 의 repository 에서 받아오는걸 pull 로 당겨온다라고 하고 로컬에 있는 코드를 원격으로 올리는 작업을 push라고 한다. 여기서 push를 하기 위해서는 add와 commit의 작업이 필요한데 이작업들의 차이

thenicesj.tistory.com

 

반응형

'IT > GIT.SVN' 카테고리의 다른 글

Git Flow 란?  (47) 2023.06.27
git 명령어  (21) 2023.04.05
[git] commit 과 push 의 차이점  (32) 2023.03.07
Git Bash ?  (41) 2022.11.06
git ignore 파일 관련  (34) 2022.06.25

댓글