문제
작업 중인 브랜치(ex: feat/#41)를 dev 브랜치에 Merge 하려는 PR을 날리려 했더니
빨간 글씨로 Can’t automatically merge 가 떴다.
말 그대로 feat/#41 브랜치를 dev 브랜치에 자동으로 머지할 수 없다는 것을 뜻한다.
원인
이는 두 브랜치가 너무 달라서(커밋이 서로 충돌하거나 서로 다른 변경 사항을 포함하고 있어서) 생기는 문제다.
해결
이런 경우에는, 수동으로 충돌을 해결하고 머지를 해야한다.
1. 원격 저장소의 최신 상태를 로컬로 가져오기
git fetch origin
로컬 저장소의 모든 브랜치 정보를 최신 버전으로 업데이트한다.
아무 브랜치에서나 실행하면 된다.
2. dev 브랜치를 작업 중인 브랜치로 병합 시도하기
2-1 ) 작업 중인 브랜치로 이동하고
git checkout feat/#41
2-2 ) feat/#41 브랜치에서 dev 브랜치 병합을 시도한다.
git merge origin/dev
이때 충돌이 생길 수 있다!
3. 충돌 해결하기
<<< HEAD -----
<< origin/dev >>>
뭐 이런 것이 코드에 껴있을 것이다.
침착하게 코드를 보면서 수동으로 충돌을 해결해준다.
충돌을 해결해준다는 뜻은, 그냥 내가 원하는 코드로 수정하면 된다.
4. 변경 사항 푸쉬하기
4-1) 성공적으로 충돌이 해결되었는지, 변경 상태를 확인한다.
git status
4-2) 다시 변경된 파일을 스테이징 영역에 추가하고, 커밋하고, 푸쉬한다.
git add .
git commit -m "[FIX] 병합 중 생긴 충돌 해결"
git push origin feat/#41
5. 다시 PR 날리기
다시 PR을 날리면 성공적으로 Merge를 할 수 있다.
'Git' 카테고리의 다른 글
PR 날린 이후에 코드를 수정하고 싶어! (0) | 2024.08.26 |
---|---|
git과 github 연동하기 (1) | 2024.01.28 |
이전 버전으로 돌아가기 (0) | 2024.01.28 |
git의 버전관리 (0) | 2024.01.28 |
설정 - git의 시작 (0) | 2024.01.28 |