[git] 신나고 짜릿한 branch conflict

이민선(Jasmine)·2023년 5월 18일
0
post-thumbnail

드디어 2번 말고 1번만 꼭 만나보고 싶었던 branch conflict의 순간 영접!

일단 반성부터 하고 시작

오늘 아침에 feature branch를 main branch에 merge 했는데, git pull origin main을 땡기고나니 경로 설정이 잘못되어 오류가 나고 있는 파일들이 있었다. 분명 오류가 없었으니 feature branch를 main에 merge 했을 것이라고 생각했는데, git은 거짓말을 하지 않으니 그건 내 착각이겠지? 지금이야 solo 프로젝트여서 그나마 나 혼자 손해보는 거지만, 협업하는 경우였다면 동료들, 팀원들에게 피해줬을 것이라고 생각하면 아찔하다! merge할 때는 신중하게 또 신중하게 해야겠다. 오늘을 마지막으로 에러가 남아 있는 브랜치를 merge하는 경험은 더 이상 하지 않는 걸루!

이제 본격적으로 conflict을 해결해보자.
Resolve conflicts버튼을 클릭했더니

오오.. 이렇게 되어있구나..

conflict 원인 추측

자세히 살펴보니 내가 다른 브랜치에서 bookMarkStore의 action명을 변경하고 main에 merge 했었는데, change-path 부분에 변경 사항이 반영이 안되어있다.

나는 main 기반으로 change-path branch를 만들었는데, 지금 추측하고 있는 원인으로는 git pull origin main을 하지 않은 상태에서 change-path branch를 판 다음, 그 다음에 main에서 pull을 하고 나니 발생한 문제일 것이라는 생각이 유력하다. 아직 git이 손에 익지 않아서 저지른 실수인 듯하다.

여기는 change-path branch!

변경 전 action명이 그대로 있다.
그래도 conflict이 난 부분을 보여주니, 이 부분을 수정하고 다시 merge 하면 해결되어야겠지 아마도?! 되어야 할텐데..!

파일 하나하나 꼼꼼히 확인하여 action명과 ItemType 참조 경로를 main과 동일하게 변경하고 나니


드디어 conflict이 사라졌다!!

아직 혼자 하는 project여서 규모가 큰 conflict은 아니었지만, 어떤 식으로 해결해야 하는지 조금이나마 경험해봐서 좋았다.

오늘의 교훈 요약

  • main에 branch를 merge할 때에는 error가 없는지 천만번 확인하자.
  • main에서 새로운 branch를 팔 때에는 git pull origin main을 잊지 말자.
  • conflict을 완전히 피해가는 것은 불가능하다. 깃헙의 Resolve conflicts 기능을 잘 활용하자.

오케이 이제 conflict 경험했으니 다시 뚝딱뚝딱 solo project 완성시키러 가자!!
오늘은 toast 기능을 구현하러 갑니다~~ 총총쓰~~

profile
기록에 진심인 개발자 🌿

0개의 댓글