충돌 다루기

두 개의 다른 브랜치에서 동일한 파일을 다르게 편집한 후 합치려고 하면 때로는 합칠 수 없는 경우도 있다.

Git에서 커밋을 자동적으로 합칠 수 없는 경우를 충돌이라고 한다.

만약 두개의 다른 브랜치에서 동일한 contact.html 파일을 합치려고 할 때 다음 화면을 보자.

실행결과

CONFLICT를 눈여겨 보면 contact.html 파일에 충돌이 있음을 알 수 있다.

about.html 파일의 코드는 다음과 같다.

    <ul>
        <li>Erlang</li>
        <li>Python</li>
        <li>Objective C</li>
<<<<<<< HEAD:about.html
        <li>Javascript</li>
=======
        <li>ECMAScrpt</li>
>>>>>>> about2:about.html
    </ul>

첫번째 '<<<<<<<' 뒤에 나오는 코드는 현재 브랜치의 코드이고, '>>>>>>>' 앞에 나오는 코드는 다른 브랜치의 코드이다.

두번째는 파일명 앞에 합치려고 하는 브랜치명이 표시된다는 것이다. 이 경우는 HEAD(현재 브랜치의 가장 최신 커밋)가 about2 브랜치와 충돌했다.

충돌이 발생한 부분을 직접 수정하거나 도구를 선택하여 수정할 수 있다.

실행결과

git mergetool은 구성에 있는 merge.tool 값을 확인하여 합치기에 적합한 도구가 있는지 시스템에서 확인한다.

C:\Documents and Settings\Administrator.gitconfig 파일을 직접 수정한다.

[merge]
    tool = vimdiff

충돌을 성공적으로 해결했다면 변경사항을 커밋한다.

results matching ""

    No results matching ""