본문 바로가기
GIT/COMMAND

[Git] Rebase

by melll93 2023. 1. 8.

1. Rebase란?

  • 커밋 시퀀스를 새 기준 커밋으로 이동하거나 결합하는 프로세스이다.

커밋 시퀀스를 새 기준 커밋으로 이동

그림에서 보이는 것처럼 rebase를 사용하면 feature 브랜치에서 작업한 커밋을 마치 Main브랜치에서 작업한 것처럼 이동시킬 수 있다.
하지만 Git은 내부적으로 새 커밋을 만들고 지정된 기준에 적용하여 이것을 구현하기 때문에, 브랜치가 동일하게 보이지만 완전히 새로운 커밋으로 구성되어 있음을 이해하는 것이 중요하다.

 

2. Rebase의 목적

  • 일반적으로 Git을 사용하는 목적은 다자 간의 협업을 위함이기 때문에 우리는 커밋을 할 때 커밋 메시지를 활용하여 어떤 커밋인지를 명시해주곤 한다. rebase를 활용하면 그러한 기록들을 유지시키거나 더 깔끔하게 정리하며 이동, 병합이 가능하기 때문에 많이 활용된다.

3. Rebase 예시

main 브랜치에 base 파일이 있는 상태에서 work 브랜치를 생성했다.

여러 옵션을 사용해보기 위해 work 브랜치에서 3개의 커밋을 생성했다.

HEAD가 work 인 상태에서 git rebase -i main 으로 실행해주고, a 커밋에는 pick, b 커밋에는 fixup,

c커밋에는 edit 옵션을 주고 실행해주었다.(:wq! 엔터)

rebase 해준 결과 커밋은 두 개로 줄어들었고, HEAD는 main을 바라보게 된다.

rebase는 다양한 subcommand 들로 다양하게 활용되기 때문에 추후에 더 사용해보며 내용을 추가하도록 하겠다.

반응형

'GIT > COMMAND' 카테고리의 다른 글

[Git] Cherry-pick & Merge --Squash  (0) 2023.01.07
[Git] Merge  (0) 2023.01.06

댓글