Git

17. Branch - 병합 (같은 파일, 같은 부분 병합)

ewok 2022. 11. 27. 23:54

같은 파일의 같은 부분을 수정했다면 git은 자동으로 병합하지 못한다. 이것을 충돌이라고 한다.

 

 

wort.txt를 생성해 입력

 

add, commit

 

o2 브랜치 생성

 

 

master 브랜치에서 work.txt 수정

 

add & commit

 

o2 브랜치로 이동

 

work.txt 수정

 

add, commit

 

 

 

이제 두 브랜치를 병합하자

 

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의 내용을 보면 수정된 것을 확인할 수 있다.