본문 바로가기
개발 도구/Git

머지 기록 없이 깔끔한 커밋 히스토리 관리하기(git rebase)

by ♥︎해이나♥︎ 2022. 12. 13.
반응형

커밋 히스토리에 머지 기록 없이 코드를 합칠 수 있는 방법이 있다.

 

 

A 브랜치와 B 브랜치가 있다. 두 브랜치에서 각각 작업을 한 내역이 있는데 이걸 A 브랜치에 합치려고 한다. 두가지 방법이 있는데 그 첫번째는 A 브랜치에서 B 브랜치를 머지하는 방법이다.

 

git merge B브랜치명

 

 

그런데 이렇게 하면 커밋 히스토리에 머지를 한 내용이 남는다. 만약 머지한 내용을 남기고 싶지 않고 원래 한 브랜치에서 작업한 것처럼 보이게 하고 싶다면 어떻게 해야 할까?

 

커밋 히스토리를 깔끔하게 관리할 수 있는 git rebase

그럴 때에는 rebase 명령어를 사용하면 된다.

 

git rebase [합치고 싶은 브랜치명]

git rebase

 

rebase는 단어 그대로 베이스를 다시 설정한다는 의미이다. 위의 사진처럼 커맨드를 실행시킨 경우에는 premium 브랜치의 베이스를 clock 브랜치로 다시 지정하여 배치를 바꿔 달라는 요청인 것이다.

실행하면 머지와 마찬가지로 컨플릭트가 발생한다. 컨플릭트를 해결한 후에 다시 터미널에서 git add . 을 통해 파일을 Staging Area로 이동시킨다. 이후에 머지를 한 경우에는 commit 명령어를 사용하는데, rebase의 경우에는 약간 다르니 주의해야 한다.

 

git rebase --continue

 

컨플릭트가 발생해서 진행하지 못한 요청을 계속 진행해달라는 의미이다. 여기까지 하고 나면 코드가 잘 합쳐진 것을 확인할 수 있을 것이다.

 

merge와 rebase의 차이점

이해를 돕기 위해 그림으로 설명하면 아래와 같다. merge를 해도 rebase를 해도 결과물은 같다. 하지만 rebase는 새로운 커밋을 만들지 않고 원래 같은 브랜치에서 작업했던 것처럼 보여지기 때문에, 커밋 히스토리를 확인했을 때에 merge를 한 것보다 깔끔해보인다.

 

git merge
git rebase

 

우리는 앞으로 두 브랜치를 합쳤다는 기록이 반드시 필요한 경우에는 merge를 사용하면 되고, 커밋 히스토리를 좀 더 깔끔하게 관리하고 싶다면 rebase를 사용하면 된다.  

반응형

댓글