번역/Git Notes for Professionals
12.1: 로컬 브랜치들 rebase 하기
노초코
2019. 11. 1. 15:59
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
Section 12.1: 로컬 브랜치들 rebase 하기
rebase 는 일련의 커밋들을 다른 커밋 위에 재적용 (reapply) 시킨다. 특정 브랜치를 rebase 하고 싶다면, 해당 브랜치를 checkout 한 후 아래와 같이 다른 브랜치의 위로 rebase 시킨다.
git checkout topic
git rebase master # 현재 브랜치를 master 브랜치 위에 rebase 시킨다
위 명령어 수행시, 아래와 같은 상태가:
A---B---C topic
/
D---E---F---G master
이렇게 바뀌게 된다:
A'--B'--C' topic
/
D---E---F---G master
위 작업들은 브랜치를 checkout 한 후 바로 rebase 를 수행하는 아래와 같은 하나의 명령어로 합칠 수도 있다:
git rebase master topic # topic 브랜치를 master 브랜치 위에 rebase 시킨다
중요: rebase 된 이후에는, 재적용된 커밋들은 원래와 다른 커밋 hash 값을 갖게 된다. 따라서 원격 저장소에 이미 push 했던 커밋을 rebase 해서는 안된다. 이러한 상황에서 rebase 를 수행한다면, 이후 rebase 된 로컬 브랜치를 원격에 push 가 불가능해지며 git push --force
를 이용해 push 해야만 하는 상황에 처하게 된다.
[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)
반응형