git rebase
는 Git에서 브랜치의 커밋 히스토리를 재정렬하거나 최신 상태로 업데이트할 때 사용되는 명령어입니다. 이 명령어는 주로 브랜치를 최신 상태로 유지하거나, 깔끔한 커밋 히스토리를 만들 때 유용합니다.
git rebase
는 기존의 커밋을 "다른 브랜치의 최신 커밋 뒤에 재배치"하는 역할을 합니다.
기본적으로 git rebase
사용 방법:
브랜치 최신 상태로 유지 (
git pull --rebase
):git pull --rebase
를 사용하면, 로컬에서 진행하던 작업을 원격 브랜치의 최신 커밋 뒤로 재배치할 수 있습니다. 예를 들어,main
브랜치의 최신 커밋을 가져오고 싶다면 다음 명령어를 사용합니다:git pull --rebase origin main
이 명령어는 원격 저장소의
main
브랜치의 최신 커밋을 가져온 후, 로컬에서 작업한 변경 사항을 해당 커밋 뒤에 재배치합니다.브랜치 간의 rebase:
다른 브랜치의 최신 커밋을 내 브랜치로 가져와 최신 상태로 만들고 싶을 때git rebase
를 사용할 수 있습니다.git checkout feature-branch git rebase main
위 명령어는
feature-branch
에서 작업하던 내용을main
브랜치의 최신 커밋 뒤에 재배치하여feature-branch
를main
의 최신 커밋으로 업데이트합니다.
git rebase
의 주요 특징:
- 커밋 히스토리 깔끔:
git merge
는 병합 커밋을 생성하지만,git rebase
는 새로운 병합 커밋을 만들지 않고 기존 커밋들을 최신 커밋 뒤로 재배치해 히스토리를 깔끔하게 유지합니다. - 충돌 해결:
git rebase
중 충돌이 발생하면, 충돌을 수동으로 해결하고git rebase --continue
명령으로 재배치를 계속할 수 있습니다.
git rebase
와 git merge
의 차이
git merge
: 두 브랜치를 병합할 때 추가적인 병합 커밋(merge commit)을 생성하여 병합의 이력을 남깁니다.git rebase
: 기존의 커밋들을 재배치하고 병합 커밋을 만들지 않으며, 깔끔한 히스토리를 유지합니다. 특히 다중 개발자 간 협업 시 로컬 작업을 최신 상태로 유지할 때 유용합니다.
git rebase
명령어 사용 예시:
로컬 브랜치 최신화 (rebase):
git checkout feature-branch git rebase main
원격 브랜치 최신화 (pull --rebase):
git pull --rebase origin main
충돌 해결 후 계속 진행:
git rebase --continue
충돌 해결 중 중단하기:
git rebase --abort
주의사항:
git rebase
는 이미 원격에 푸시한 커밋에 대해 사용하면 안 됩니다. 이미 공유된 커밋의 히스토리를 변경하면 다른 개발자들이 혼란을 겪을 수 있기 때문입니다.- 안전하게 사용하려면 로컬 브랜치에서만 사용하는 것이 좋습니다.
git rebase
는 Git에서 강력한 도구이지만, 사용 시 커밋 히스토리를 변경하므로 주의가 필요합니다.
반응형
'GIT' 카테고리의 다른 글
Git : 로컬 변경 사항을 무시하고 원격 main 브랜치 강제 가져오기 (1) | 2024.10.08 |
---|---|
GIT : 변경 사항을 무시하고 main 브랜치로 되돌리기 (0) | 2024.10.08 |