
프로젝트 진행 중 A브랜치와 B브랜치를 병합하려 했는데 오류가 발생했다.
그리고 브랜치 그래프가 아래와 같았다.
(사실 오류는 다른 부분에서 발생했다. 방법은 해결로!)

동일한 내용의 커밋이 각 브랜치에 따로 존재했다. 이유를 알아보자
커밋을 자세히 보면 순서가 이상하다.
브랜치별로 구분하기 편하도록 색상으로 나눴다.

refactor: AutoCompleteWordDto 수정 커밋 내용이
A브랜치에서는 feat: Service 기반 작성 커밋 보다 하위에 위치하고
B브랜치에서는 feat: Service 기반 작성 커밋 보다 상위에 위치한다.
왜 이러한 문제가 발생한건지 chatGPT에 물어봤는데 아래와 같았다.

chatGPT의 답변을 기반으로 했을때, 가능성 있는건 Rebase, Amend, ForcePush이다.
확실치는 않지만 commit중 amend를 진행한 적이 있는데, 그때 순서가 바뀌었을 것이라고 추측한다.
기본적으로 커밋 순서가 다르다 해서 git의 병합이 실패하지는 않는다.
그냥 merge해도 잘 작동한다.
나도 병합할 때 오류가 발생해서 원인이 커밋 순서에 있는 줄 알았지만, 사실 문제는 따로 있었다.
# Conflicts:
# src/main/java/com/perfumepedia/PerfumePedia/service/SearchResultService.java
각 브랜치에서 SearchResultService.java 코드가 둘 다 수정되어 오류가 발생했을 뿐...
문제를 알았으니 됐다!