본문 바로가기

Git

[Git] branch 병합 시 충돌해결

728x90
반응형

branch 병합 시 충돌해결


각 브랜치에 있는 같은 파일에서 동일 위치의 코드를 수정하고 병합하려고 할 때 충돌이 일어납니다.


예를 들어 exp, master 브랜치에 common.txt 파일이 있을 때,

[기존 common.txt]

function a(exp){}


[exp - common.txt]

function a(exp){}


[master - common.txt]

function a(master){}

기존 코드에서 exp브랜치로 체크아웃하고 exp라는 파라미터를 추가, master 브랜치로 체크아웃하고 master라는 파라미터를 추가하고 병합할 경우

같은 파일, 동일 위치의 코드가 변경되어 충돌이 일어나게 됩니다.


충돌이 된다면 아래와 같은 메세지가 뜹니다.


git status를 하면 충돌된 파일을 찾을 수 있습니다.



충돌이 발생한 파일을 확인하면 이런 식으로 수정되어있습니다.

<<<<<<< HEAD

function a(master){}

=======

function a(exp){}

>>>>>>> exp


<<<<<<< HEAD는 아래 코드가 현재 위치의 branch 의 코드라는 것을 알려주고,

======= 아래부터 >>>>>>> exp 까지는 exp와 충돌되었고 충돌된 부분의 exp의 코드를 나타내줍니다.

충돌을 알려주는 이러한 코드를 잘 해석해야 합니다.


이후 충돌을 알려주는 부분을 수정합니다.

function a(master, exp){}


수정 후 수정한 파일을 add 하고 status를 하면 충돌이 해결되었다는 상태를 알려줍니다.

commit까지 하면 충돌 해결이 완료됩니다.





참고 : 생활코딩 - 지옥에서 온 Git

728x90
반응형