pr 날린 후 충돌이 있어 git 사이트 내에서 해결했다.
다행히 금방 해결됐지만 다시 로컬로 돌아와 수정후 push 를 하려고 보니 이런 에러가 떴다.
사진속 명령어 3가지 중 하나를 선택해 입력하면 되는 모양이었다. 간단한 에러인 듯 했다.
다만 콘솔에 뜬
rebase false # merge
rebase true # rebase
라는 부분을 보면서
rebase와 merge 의 차이가 궁금해졌다.
문제가 된 현재 상태.
참고 https://firework-ham.tistory.com/12
직접 그려보며 이해해본 바는:
merge:
rebase:
merge 로만 쓰는 것보다 rebase 를 함께 섞어 사용하면 더 깔끔한 git history 를 만들 수 있다.
예시와 함께 보자.
이것도 역시 직접 그려보며 이해하려 했다.
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
이후 이 명령어로 리모트 저장소에 로컬 커밋과 함께 푸쉬해주어 문제를 해결했다.