git rebase 에러 (feat. git rebase와 merge의 차이)

이현정·2022년 7월 31일
0

에러 탐험기

목록 보기
4/4

pr 날린 후 충돌이 있어 git 사이트 내에서 해결했다.
다행히 금방 해결됐지만 다시 로컬로 돌아와 수정후 push 를 하려고 보니 이런 에러가 떴다.

사진속 명령어 3가지 중 하나를 선택해 입력하면 되는 모양이었다. 간단한 에러인 듯 했다.

다만 콘솔에 뜬
rebase false # merge
rebase true # rebase

라는 부분을 보면서
rebase와 merge 의 차이가 궁금해졌다.

문제

문제가 된 현재 상태.

Rebase vs. Merge

참고 https://firework-ham.tistory.com/12

직접 그려보며 이해해본 바는:

merge:
rebase:

merge 로만 쓰는 것보다 rebase 를 함께 섞어 사용하면 더 깔끔한 git history 를 만들 수 있다.

예시와 함께 보자.

Example

이것도 역시 직접 그려보며 이해하려 했다.
3가지 상태로 구분된다: 맨 왼쪽(1) - rebase -> 중간(2) - merge -> 맨 오른쪽(3)

맨 왼쪽이 가장 처음의 상태이다. 상테1로 칭하겠다.
상태1처럼 하나 파생되어나온 branch 에서 또 다른 branch 를 파생한 경우,
merge 로만 병합하면 브랜치가 2개가 되지만,
rebase + merge 를 사용하면 깔끔하게 하나의 브랜치로 정리할 수 있다.

결론: rebase 는 더 깔끔한 git history 를 위해 사용하면 좋은 부가적 기능이다.

해결

문제 파악

다시 내 문제로 돌아와보자.
나의 경우 rebase 가 따로 필요 없는 경우였다.

문제의 원인은 저 빨간 점 부분인데,
저번 pr 때 충돌이 있어 origin/step.2 부분을 깃헙 사이트(리모트 저장소)에서 수정했던 것이다.

이후 로컬 부분에 그 변화를 적용하지 않아 문제가 되었다.

해결

git pull origin step.2

로 리모트 저장소의 변화를 로컬에 끌어온다.

git push origin step.2

이후 이 명령어로 리모트 저장소에 로컬 커밋과 함께 푸쉬해주어 문제를 해결했다.

Reference

참조사항
https://www.edureka.co/blog/git-rebase-vs-merge/#:~:text=Git%20merge%20is%20a%20command,of%20the%20merging%20of%20commits.

함께 읽어보기
https://velog.io/@eamon3481/git-merge-rebase

0개의 댓글