conflict - 충돌 해결

549 단어·2 분·원문(.md)

  • 같은 파일을 부득이 수정하는 경우가 생기고 필연적으로 충돌이 발생하는데, 강제로 상황을 만들고 충돌을 해결하는 방법을 알아보자.

update-red 브랜치에서 수정한 red파일을 main 브랜치에서도 수정하여 충돌 상황을 만들어보자.


작업 #

  1. main 브랜치에서 red파일 수정
  2. 전체 변경사항을 인덱스에 추가
  3. 커밋 작성
  4. update-red 브랜치를 main으로 머지
echo "빨간색" > red
git add -A # gaa
git commit -m "update red color"
git merge update-red

result : conflict라는 메시지와 함께 실패

CONFLCIT #

충돌은 정말 마주치고 싶지 않은 상황입니다. 하지만, 상황이 발생했으면 해결해야 합니다. 충돌을 해결하고 커밋을 하거나, 머지 작업을 취소할 수 있습니다.

<<<<<<< HEAD
빨간색
======
붉은색
>>>>>>> update-red
  • 충돌이 발생하면 양쪽 브랜치에서 동시에 변경된 사항을 표시해 줍니다.
  • <<<<<<< , ======= , >>>>>>> 이 내용이 충돌이 발생한 지점을 의미합니다.

위에 내용은 main 브랜치에서 작업한 내용이고 아래 내용은 update-red 브랜치에서 작업한 내용이다. 둘중에 어떤 내용이 맞는지는 개발자가 스스로 판단하고 선택해야한다.

  • 여기선 붉은 색만 남기고 다른 줄을 삭제한다.
  • 충돌을 해결했다면 기존과 동일한 방식으로 커밋을 진행한다 여기서 차이점은 commit -m 메세지를 입력하지 않고 commit 만한다.
  • 충돌을 수정한 내용을 자동으로 메시지로 만들기 때문에 입력 안해도 된다.
git add -A
git commit

vi 창이 열리고 메시지를 입력하는 화면이 나오면 당황하지 말고 esc 키를 누르고 :x를 차례로 입력한 다음 엔터를 친다.

Back-End/git/conflict.md