🔥 git rebase
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의 차이
rebase
는 merge
와 다르게 작동합니다. merge
는 두 브랜치의 변경 사항을 병합하는 반면, rebase
는 한 브랜치의 커밋을 다른 브랜치의 뒤에 재배치합니다. 이는 히스토리를 선형적으로 만들어 보다 깔끔한 히스토리를 유지할 수 있게 해줍니다.
rebase 사용 시 주의사항
rebase
는 공개된 브랜치에서 사용할 때 주의가 필요합니다. 이미 공개된 브랜치의 히스토리를 변경하면 협업 중인 다른 개발자들에게 혼란을 줄 수 있습니다.
연습문제
- 새로운 브랜치를 만들고
git rebase
를 사용하여 메인 브랜치의 최신 변경 사항을 적용해보세요. rebase
중 충돌이 발생했을 때 이를 해결하고rebase
를 완료하는 과정을 연습해보세요.git rebase
의 인터랙티브 모드를 사용하여 커밋 히스토리를 수정해보세요.rebase
사용 시 주의해야 할 점에 대해 설명해보세요.