GitNotes.12-1.md
본 문서는 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)

반응형

+ Recent posts