이번 실습에서는 이전 실습에 이어서 두 branch(master, ver_B)에 서로 같은 파일을 추가하고 이를 서로 다르게 수정해서 merge를 시도해 보도록 하겠다.
1. master에 smartCal.c 파일 추가
2. ver_B에 smartCal.c 파일 추가
3. master에 ver_B merge 시도
이전 시나리오(2)와는 달리 서로 같은 파일을 서로 다르게 수정한 상태에서 merge를 진행하려고 하니 충돌이 발생하여 merge가 진행되지 않는다. 이를 해결하기 위해서는 파일을 적절히 수정해준 후 다시 merge를 시도해야하는 데 이 상황에서 smartCal.c 파일을 열어보면 사용자가 내용을 쉽게 수정할 수 있도록 다음과 같은 형태로 바뀌어 있다.
잘보면 다음과 같이 각 branch에서의 파일별로 내용이 어떻게 다른 지를 정리해서 보여주고 있다. HEAD로 시작해서 ==== 로 나눠진 영역이 master의 내용이고, ======로 시작해서 >> ver_B로 되어있는 영역이 ver_B의 내용이다. 두 branch의 파일의 내용이 통일되어야 정상적으로 merge를 진행할 수 있으므로 아래와 같이 smartCal.c의 내용을 다음과 같이 수정하였다.
이제 이를 다시 add하고 commit 해주면 merge가 완료된다.
이제 이 시점에서 git log를 이용해서 commit 기록을 살펴보면 다음과 같이 시각적으로 branching, merge가 일어난 시점을 확인할 수 있다.