글 작성자: juyoungit

이번 실습에서는 이전 실습에 이어서 두 branch(master, ver_B)에 서로 같은 파일을 추가하고 이를 서로 다르게 수정해서 merge를 시도해 보도록 하겠다.

1. master에 smartCal.c 파일 추가

master에 추가하는 smartCal.c의 소스코드
smartCal.c 파일 add
commit 수행

2. ver_B에 smartCal.c 파일 추가

branch ver_B 로 이동
ver_B에 추가하는 smartCal.c 의 소스코드

 

smartCal.c 파일 add
commit 수행

3. master에 ver_B merge 시도

master로 이동
merge 시도 결과 - 충돌이 일어난다.

이전 시나리오(2)와는 달리 서로 같은 파일을 서로 다르게 수정한 상태에서 merge를 진행하려고 하니 충돌이 발생하여 merge가 진행되지 않는다. 이를 해결하기 위해서는 파일을 적절히 수정해준 후 다시 merge를 시도해야하는 데 이 상황에서 smartCal.c 파일을 열어보면 사용자가 내용을 쉽게 수정할 수 있도록 다음과 같은 형태로 바뀌어 있다.

잘보면 다음과 같이 각 branch에서의 파일별로 내용이 어떻게 다른 지를 정리해서 보여주고 있다. HEAD로 시작해서 ==== 로 나눠진 영역이 master의 내용이고, ======로 시작해서 >> ver_B로 되어있는 영역이 ver_B의 내용이다. 두 branch의 파일의 내용이 통일되어야 정상적으로 merge를 진행할 수 있으므로 아래와 같이 smartCal.c의 내용을 다음과 같이 수정하였다.

smartCal.c 수정 후

이제 이를 다시 add하고 commit 해주면 merge가 완료된다.

수정 후 이를 add, commit 함으로서 이전에 시도한 merge가 완료된다.

이제 이 시점에서 git log를 이용해서 commit 기록을 살펴보면 다음과 같이 시각적으로 branching, merge가 일어난 시점을 확인할 수 있다.

이렇게 실습 시나리오 따라하기를 마치도록 하겠다.

'Tools > Git, Github' 카테고리의 다른 글

git rebase  (0) 2021.01.20
git revert, reset  (0) 2021.01.19
Git 실습 시나리오 따라해보기(2)  (0) 2021.01.18
Git 실습 시나리오 따라해보기(1)  (0) 2021.01.17
git branch, merge  (0) 2021.01.16