본문 바로가기
  • 실행력이 모든걸 결정한다
Git & Github

[Git] 브랜치(2) - 충돌(conflict) 처리

by 김코더 김주역 2021. 4. 7.
반응형

충돌은 2개 이상의 브랜치에서 동일 파일 내용을 변경할 때 발생할 수 있는 현상이다.

더 자세하게 말하자면, 충돌은 두 브랜치가 모두 동일한 파일의 내용을 수정하고 commit까지 마친상태로 merge를 시도할 때 발생한다.

특정 파일의 내용이 브랜치마다 다르다면 제작 의도와 다른 프로젝트가 만들어지는 문제가 생긴다.

 

1. 충돌 문제

다음 예시를 보자.

develop 브랜치에서 textfile.txt의 내용을 다음과 같이 변경하고 commit까지 완료했다. 

 

main 브랜치에서는 textfile.txt의 내용을 위와 다른 내용으로 변경하고 commit까지 완료했다.

 

develop 브랜치에서의 해당 커밋 내역

 

main 브랜치에서의 해당 커밋 내역

 

main 브랜치로 돌아와서 병합을 시도하니 충돌이 발생하였다.

내용을 보니 예상대로 textfile.txt에 충돌이 발생했다고 나왔다.

 

그리고 바로 textfile.txt을 확인해보니 내용이 바뀌었다.

충돌이 어떻게 발생했는지 표시해주는 내용으로 바뀐 것이다.

"=======" 을 경계로 윗 부분이 main 브랜치에 해당하는 내용이고,

아랫 부분이 develop 브랜치에 해당하는 내용이다.

 

 

2) 충돌 해결

여러분은 이 두 부분중 한 부분을 수동으로 결정할 수 있다.

 

필자는 아래 부분을 선택했다.

 

그리고 이 내용을 commit까지 하고, 다시 병합을 시도해보았다.

충돌 없이 잘 병합이 되었다.

 

push까지 진행해서 깃허브에도 잘 적용되었음을 확인했다.

 

 

 

 

 

 

 

반응형

댓글