협업을 하며 Git에 PR을 올릴때 main 코드와 내 local 코드가 서로 일치하지 않아 발생하는 에러를 conflict 에러라고 한다.
개발을 할때, 주기적으로 기능을 단위별로 PR을 올리지 않고 push만 하고 모든 기능들이 완성된 후에 PR을 올릴 시..
엄청난 후폭풍을 불러 일으킬 수 있다.😂 (필자의 경험담)
다음과 같은 절차로 Git Conflict 에러를 잡아 난항을 헤쳐 나가보자!
git rebase origin/main #main에 있는 코드로 내 로컬이 바라보는 곳을 옮긴다.
#(직접작업) 내가 작업하던 IDE로 돌아와 Code상에서 직접 conflict를 잡는다.
git add . #conflict를 해결한 파일들 전부를 stage에 올린다.
git rebase --continue
git add .
git push -f
**작업하기 전에 항상 git remote update
와 git pull --rebase
하는 습관을 기르자.
(main에 merge된 그간의 파일들이 내 local 컴퓨터에서 remote branch들의 환경이 update된다.) 그리고 git pull —rebase
로 마무리! :)
⇒ 이 두 명령어를 숨쉬듯이 해줘도 conflict는 거의 발생하지 않는다.
❓ 간혹가다 conflict error가 없음에도 불구하고 Git이나 또는 Code Commit (AWS의 Git)에서 에러가 났다고 표시해주는 경우도 있는데 이는 다음과 같이 해결한다.
git remote update
git rebase origin/main
git push -f