17. Branch - 병합 (같은 파일, 같은 부분 병합)
같은 파일의 같은 부분을 수정했다면 git은 자동으로 병합하지 못한다. 이것을 충돌이라고 한다.
wort.txt를 생성해 입력
o2 브랜치 생성
master 브랜치에서 work.txt 수정
o2 브랜치로 이동
work.txt 수정
이제 두 브랜치를 병합하자
1. 작업할 브랜치로 이동
2. 가져올 브랜치를 merge
o2를 가져와 merge 하려고 하자 충돌이 발생했다.
git status를 통해 상태를 확인해보면 아래와 같다.
work.txt를 확인해보자
master와 o2사이에 있는 =======는 구분자이다. 구분자를 중심으로 위 두줄은 현재 브랜치의 내용은 master라는 의미이다.
아래 두줄은 o2 브랜치에서의 내용은 o2라는 의미이다.
아까 master 브랜치에서 master를 수정 입력해주었고, o2 브랜치에서 o2를 입력해주었다. 그 작업 내용을 알려주는 것이다.
이 두 부분에 대해 어떻게 할 지를 물어보는 것이다. 나머지는 부분에 대해서는 충돌이 발생하지 않았으니 git이 알아서 처리해준다.
이 부분을 보고 master가 맞으면 master를 제외한 나머지(o2)를 지우면 되고 o2가 맞으면 o2를 제외한 나머지(master)를 지우면 된다.
즉, 원하는 내용이 표시되도록 수정하면 된다.
예를 들어 만약 둘 다 표시하고 싶다면 다음과 같이 수정하면 된다.
그리고 add를 해주면 이 충돌을 해결했다고 git에게 알려주는 것이다.
work.txt의 내용을 보면 수정된 것을 확인할 수 있다.