git 에서 merge 를 할때 사용하는 Three way merge 기법을 씁니다.
즉 자동으로 파일을 병합해줍니다. 또한 Two way merge 도 알아보면서 어떤 차이가 있는지도 알아보겠습니다.

Base 에 , , , 라는 내용이 있다고 가정해봅시다.
먼저 Me 에서 는 , 는 그대로 두고 는 로 , 는 제거했습니다.
그리고 Other 에서는 는 제거 , 는 그대로 , 는 2로 , 는 그대로 수정했다고 해봅시다.
2 way merge 는 Base 를 보지 않고 Me 와 Other 의 차이만 봅니다.
첫번째 줄에는 Me 는 , Other 는 공백이기 때문에 무엇을 선택해야할지 git 은 모르기 때문에
conflict 가 납니다.
두번째 줄에는 둘다 같으므로 그냥 를 씁니다.
세번째 줄에는 서로 내용이 다르기 때문에 git 은 무엇을 선택해야할지 모르기 때문에 conflict 가 발생합니다.
마지막 줄에도 Me 는 공백이지만 Other 에는 가 있기때문에 무엇을 선택해야할지 몰라서 conflict 가 발생합니다.
이제 3 way merge 에 대해 알아보겠습니다. 이는 Me , Base , Other 를 모두 고려하는 방법입니다.
첫번째 줄에서는 Base 에서 의 내용이 Other 에서 공백으로 수정하였기 때문에
수정한 내용을 따라가서 공백으로 병합합니다.
두번째 줄에는 변화가 없으므로 를 그대로 씁니다.
다만 세번째 줄에는 둘다 변화가 있으므로 conflict 가 발생합니다.
마지막 줄에는 Base 에서 가 Me 에서만 공백으로 수정되었기 때문에 공백으로 병합합니다.
즉 3 way merge 방법을 쓰면 2 way merge 방법보다 conflict 가 덜 발생하고 어떤것이 변화하였는지 더 명확하게 알 수 있다는 장점이 있습니다.
이상으로 2 way merge 와 3 way merge 에 대해 알아보았습니다.