Dev-Basic/git
[git] rebase 개념
yoonjong Park
2023. 8. 9. 10:34
배경
요즘 내가 주로 rebase를 사용하는 때는, issue에 따라 brunch를 여러 개 만드는 경우다.
Merge과정
보통 수정 작업은 issue 생성 -> brunch 생성 -> 작업내용 commit -m -> push to 생성한 brunch(보통 dev) [pull request 생성 (작업 brunch -> parent brunch )
문제의 시작
1. dev를 기반으로 feat1, feat2 brunch 생성하고
2. feat1을 dev에 Merge를 하고 나서, feat2가 문제가 발생
왜냐하면, feat2 brunch를 생성한 시점의 dev는 feat1이 수정되기 전이기 때문이다. 그래서, 이럴 때 feat1이 merge된 dev brunch를 모두 pull받고 나서 feat2 brunch로 git checkout 한 이후, 그러고나서 git rebase dev -i 와 같이 pick하면 된다.
명령어 순서
git checkout dev
git pull // dev를 받고
git checkout 작업브랜치 // 작업하는 브랜치로 이동해서
git rebase dev -i // 반영할 commit 을 선택, 다 반영하면 :wq
git push --f // 작업 브랜치에 밀어넣기
결과
feat2의 commit 이 feat1의 commit은 제외하고 pull request 에 반영되게 된다.