Dev-Basic/git

[git] rebase 개념

yoonjong Park 2023. 8. 9.

배경

요즘 내가 주로 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 에 반영되게 된다.

댓글