깃을 이용해 개발 할 때 가장 보기 싫은 문구 1위... Can't automatically merge.
오늘도 어김없이 pull request 만들었는데 떴다.
그치만 사실 저 문구가 떠도 pull request를 만들 수는 있다.
오히려 만들고 나면 깃헙에서 어떤 부분에 충돌이 났는지 알려준다!
만들어진 PR을 스크롤 내려 확인해보면 위와 같은 칸이 뜨는데 오른쪽 위의 Resolve conflicts를 누르면 깃헙에서 어떤 부분을 자동으로 머지해줄 수 없는지 보여준다.
이건 실제로 오늘 만든 PR에서 발생한 충돌 내용이다.
충돌이 일어난 이유는 같은 파일 영역에 원격 저장소에 있는 코드와 내가 머지하려는 로컬 환경의 코드가 다르기 때문에 깃헙이 어떻게 합쳐야 하는지를 모른다는거였다.
<<<<<<< feature/payment
import com.pickple.payment_service.application.dto.PaymentRespDto;
=======
>>>>>>> develop
import com.pickple.payment_service.application.service.PaymentService;
내가 사용하는 브랜치는 feature/payment 였고 머지하려고 했던 원격 저장소는 develop 브랜치였다.
<,=,>는 깃헙의 충돌 표식이다.
<<<<<<< 부터 ======= 까지의 코드는 내가 머지하려는 로컬 환경의 코드이고,
======= 와 >>>>>>> 사이의 코드는 원격 저장소 또는 다른 브랜치의 수정 사항이다.
자유롭게 지울 수 있기 때문에 둘 다 지워서 충돌 부분을 아예 없애버리거나, 충돌 표식만 없애서 코드 두 줄을 보존 시킬 수 있다. (내 경우 두 코드를 모두 살려도 문제가 없기 때문)
물론 둘 중 하나만 남기고 싶을 땐 충돌 표식과 함께 지우려는 코드를 지워주면 된다.
충돌을 잘 해결하고 난 뒤에는 해결됨! Mark as resolved 를 누르고 해당 변경사항을 커밋해주면 PR에 머지해도 된다는 아름다운 초록색 마크들만 뜨는걸 확인 할 수 있다.
→ 현재 진행중인 프로젝트는 브랜치 룰 때문에 바로 머지가 되지 않아 Commit merge 버튼을 누르면 다시 PR 화면으로 돌아가지만 따로 브랜치 룰이 없다면 바로 머지 되는 것 같다.
사실 충돌난 부분이 브랜치 사이의 충돌... 고난한 병합 문제... 그런거 아니고 내 실수 때문이어서 좀 머쓱하다.
전에 PR 올리고 난 뒤 원격 저장소에서 pull 당겨오지 않은 채로 이어서 새 코드를 적어 PR을 올리는 바람에
깃헙이 엥? 너 전에는 여기에 이렇게 적었잖아 왜 말 바꿔? 한 셈이다... #pull을생활화하자
🔗 포스팅 참고 출처 :
'Git' 카테고리의 다른 글
Github Actions의 환경 변수 참조 에러 Github Secrets 사용으로 해결하기 (0) | 2024.10.18 |
---|---|
[🐙 Git & Github] 깃 명령어 사용해서 특정 브랜치로 이동하기 (2) | 2024.10.07 |
[🐙 Git & Github] 깃헙 이슈 이해하기 + Issue & PR Template 만들기 (1) | 2024.09.26 |
[🐙 Git & Github] 깃 컨벤션으로 커밋 메세지 형식 통일하기 (0) | 2024.09.26 |
[🐙 Git & Github ] Github Actions 을 활용한 CI/CD 파이프라인 구성하기 (0) | 2024.08.17 |