본 문서는 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)
반응형
'번역 > Git Notes for Professionals' 카테고리의 다른 글
12.3: 대화형(interactive) rebase (0) | 2019.11.06 |
---|---|
12.2: Rebase 시 "ours" 와 "theirs", 로컬과 원격 개념 이해하기 (0) | 2019.11.05 |
12: Rebase 하기 (0) | 2019.10.31 |
11.8: stage 된 파일들을 unstage 시키기 (0) | 2019.10.30 |
11.7: 선형적인 history 를 유지하면서 코드 업데이트하기 (0) | 2019.10.30 |