🔥 git rebase
git rebase는 Git에서 중요한 도구 중 하나로, 브랜치의 기준점을 변경하거나 다른 브랜치의 변경 사항을 현재 브랜치에 적용할 때 사용됩니다. rebase는 '재배치'라는 의미를 가지며, 말 그대로 커밋들을 현재 작업 중인 브랜치로 옮겨 재배치하는 것을 의미합니다.
rebase는 복잡할 수 있지만, 이해하고 사용하면 프로젝트의 커밋 히스토리를 깨끗하고 관리하기 쉽게 유지할 수 있습니다. 이 장에서는 git rebase의 기본적인 사용법부터 고급 활용법까지 다양한 예제를 통해 자세히 살펴보겠습니다.
rebase의 기본 개념
git rebase는 한 브랜치의 변경 사항을 다른 브랜치에 적용하고자 할 때 사용됩니다. 이 과정에서 커밋의 기준점이 변경되어, 마치 변경 사항이 새로운 기준점에서 시작된 것처럼 보입니다. git rebase를 사용하는 가장 기본적인 방법은 다음과 같습니다.
# feature 브랜치를 main 브랜치에 rebase
git checkout feature
git rebase main# feature 브랜치를 main 브랜치에 rebase
git checkout feature
git rebase main이 명령어는 feature 브랜치의 변경 사항을 main 브랜치의 최신 상태에 적용합니다.
rebase의 인터랙티브 모드
git rebase의 인터랙티브 모드를 사용하면 커밋 히스토리를 편집할 수 있습니다. 이를 통해 커밋을 재정렬하거나, 합치거나, 수정할 수 있습니다.
# 인터랙티브 모드로 rebase
git rebase -i HEAD~3# 인터랙티브 모드로 rebase
git rebase -i HEAD~3이 명령어는 최근 3개의 커밋을 인터랙티브 모드에서 rebase합니다.
rebase 중 충돌 해결하기
rebase 과정에서 충돌이 발생할 수 있습니다. 이 경우 충돌을 수동으로 해결한 후 rebase를 계속 진행해야 합니다.
# 충돌 해결 후 rebase 계속
git add [파일명]
git rebase --continue# 충돌 해결 후 rebase 계속
git add [파일명]
git rebase --continue만약 rebase를 중단하고 싶다면, git rebase --abort 명령을 사용합니다.
rebase와 merge의 차이
rebase는 merge와 다르게 작동합니다. merge는 두 브랜치의 변경 사항을 병합하는 반면, rebase는 한 브랜치의 커밋을 다른 브랜치의 뒤에 재배치합니다. 이는 히스토리를 선형적으로 만들어 보다 깔끔한 히스토리를 유지할 수 있게 해줍니다.
rebase 사용 시 주의사항
rebase는 공개된 브랜치에서 사용할 때 주의가 필요합니다. 이미 공개된 브랜치의 히스토리를 변경하면 협업 중인 다른 개발자들에게 혼란을 줄 수 있습니다.
연습문제
- 새로운 브랜치를 만들고
git rebase를 사용하여 메인 브랜치의 최신 변경 사항을 적용해보세요. rebase중 충돌이 발생했을 때 이를 해결하고rebase를 완료하는 과정을 연습해보세요.git rebase의 인터랙티브 모드를 사용하여 커밋 히스토리를 수정해보세요.rebase사용 시 주의해야 할 점에 대해 설명해보세요.











