충돌 다루기
두 개의 다른 브랜치에서 동일한 파일을 다르게 편집한 후 합치려고 하면 때로는 합칠 수 없는 경우도 있다.
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
충돌을 성공적으로 해결했다면 변경사항을 커밋한다.