자주 사용하는 git pull --rebase에 대해 정리해보려한다.

협업을 같이하다보면 지속적으로 업데이트를 하기 위해서
pull을 하거나 remote를 가져오기위해 fetch를 진행한다.

dev/back 이라는 브랜치가 백엔드끼리
통합을 해서 사용하는 브랜치라고 가정하자.

내가 작업하는 브랜치는 feat/BE/security라고 하였을때
누군가 dev/back에 작업을 하고 Pull Reqeust하여 Merge를 했다고
가정을 해보면. 현재 dev/back 브랜치의 프로그램이 가장 최신본이다.

내가 작업하고있는 브랜치를 최신화 시키고 싶을때
dev/back에 있는 브랜치를 Pull해오면 된다.


❓ 하지만 다른 사람이 작업한 부분과, 내가 작업한 부분이 겹쳤다면 ❓

git pull origin dev/back

위와 같이 명령을 해보아도 충돌이 나면서 작업이 진행 되지 않을 것이다.

그럴 경우에는

git pull origin dev/back --rebase

image

위와 같이 입력을 해주면, 파일이 합쳐진 것이고
이제 합쳐진 파일에서 겹친 부분을 수정을 해주면 된다.
참고로 브랜치 이름이 e1604ec 이렇게 바뀐 모습을 볼 수 있다.

수정을 다완료 하고 나면

git rebase --continue

image

를 입력해줘서 다음 rebase할 커밋으로 넘어가주면 된다.
만약 다음에 수정할게 없다면


아래와 같이 원래 브랜치 feat/BE/security로 바뀐 모습을 볼 수 있다.
이제 rebase완료된 파일을 feat/BE/security 브랜치로 올려주면 된다.

git push origin feat/BE/security

를 입력해주면 push를 할 수 있는데

아래와 같은 에러에 마주하였을 경우에는

image

합쳐진게 전부 잘 수정했다고 가정하면

git push origin feat/BE/security -ff

를 입력해 레파지토리에 강제로 push할 수 있다.