🔥 git rebase

314자
5분

git rebase는 Git에서 중요한 도구 중 하나로, 브랜치의 기준점을 변경하거나 다른 브랜치의 변경 사항을 현재 브랜치에 적용할 때 사용됩니다. rebase는 '재배치'라는 의미를 가지며, 말 그대로 커밋들을 현재 작업 중인 브랜치로 옮겨 재배치하는 것을 의미합니다.

rebase는 복잡할 수 있지만, 이해하고 사용하면 프로젝트의 커밋 히스토리를 깨끗하고 관리하기 쉽게 유지할 수 있습니다. 이 장에서는 git rebase의 기본적인 사용법부터 고급 활용법까지 다양한 예제를 통해 자세히 살펴보겠습니다.

rebase의 기본 개념

git rebase는 한 브랜치의 변경 사항을 다른 브랜치에 적용하고자 할 때 사용됩니다. 이 과정에서 커밋의 기준점이 변경되어, 마치 변경 사항이 새로운 기준점에서 시작된 것처럼 보입니다. git rebase를 사용하는 가장 기본적인 방법은 다음과 같습니다.

# feature 브랜치를 main 브랜치에 rebase
git checkout feature
git rebase main
shell

이 명령어는 feature 브랜치의 변경 사항을 main 브랜치의 최신 상태에 적용합니다.

rebase의 인터랙티브 모드

git rebase의 인터랙티브 모드를 사용하면 커밋 히스토리를 편집할 수 있습니다. 이를 통해 커밋을 재정렬하거나, 합치거나, 수정할 수 있습니다.

# 인터랙티브 모드로 rebase
git rebase -i HEAD~3
shell

이 명령어는 최근 3개의 커밋을 인터랙티브 모드에서 rebase합니다.

rebase 중 충돌 해결하기

rebase 과정에서 충돌이 발생할 수 있습니다. 이 경우 충돌을 수동으로 해결한 후 rebase를 계속 진행해야 합니다.

# 충돌 해결 후 rebase 계속
git add [파일명]
git rebase --continue
shell

만약 rebase를 중단하고 싶다면, git rebase --abort 명령을 사용합니다.

rebase와 merge의 차이

rebasemerge와 다르게 작동합니다. merge는 두 브랜치의 변경 사항을 병합하는 반면, rebase는 한 브랜치의 커밋을 다른 브랜치의 뒤에 재배치합니다. 이는 히스토리를 선형적으로 만들어 보다 깔끔한 히스토리를 유지할 수 있게 해줍니다.

rebase 사용 시 주의사항

rebase는 공개된 브랜치에서 사용할 때 주의가 필요합니다. 이미 공개된 브랜치의 히스토리를 변경하면 협업 중인 다른 개발자들에게 혼란을 줄 수 있습니다.

연습문제

  1. 새로운 브랜치를 만들고 git rebase를 사용하여 메인 브랜치의 최신 변경 사항을 적용해보세요.
  2. rebase 중 충돌이 발생했을 때 이를 해결하고 rebase를 완료하는 과정을 연습해보세요.
  3. git rebase의 인터랙티브 모드를 사용하여 커밋 히스토리를 수정해보세요.
  4. rebase 사용 시 주의해야 할 점에 대해 설명해보세요.