#26 Git - Three way merge

김현준·2022년 12월 26일
0

GIT

목록 보기
26/41

git 에서 merge 를 할때 사용하는 Three way merge 기법을 씁니다.

즉 자동으로 파일을 병합해줍니다. 또한 Two way merge 도 알아보면서 어떤 차이가 있는지도 알아보겠습니다.

BaseAA , BB , CC , DD 라는 내용이 있다고 가정해봅시다.
먼저 Me 에서 는 AA , BB 는 그대로 두고 CC11 로 , DD 는 제거했습니다.

그리고 Other 에서는 AA 는 제거 , BB 는 그대로 , CC 는 2로 , DD 는 그대로 수정했다고 해봅시다.

2 way merge Base 를 보지 않고 Me Other 의 차이만 봅니다.

첫번째 줄에는 MeAA , Other 는 공백이기 때문에 무엇을 선택해야할지 git 은 모르기 때문에
conflict 가 납니다.

두번째 줄에는 둘다 같으므로 그냥 BB 를 씁니다.

세번째 줄에는 서로 내용이 다르기 때문에 git 은 무엇을 선택해야할지 모르기 때문에 conflict 가 발생합니다.

마지막 줄에도 Me 는 공백이지만 Other 에는 DD 가 있기때문에 무엇을 선택해야할지 몰라서 conflict 가 발생합니다.


이제 3 way merge 에 대해 알아보겠습니다. 이는 Me , Base , Other 를 모두 고려하는 방법입니다.

첫번째 줄에서는 Base 에서 AA 의 내용이 Other 에서 공백으로 수정하였기 때문에
수정한 내용을 따라가서 공백으로 병합합니다.

두번째 줄에는 변화가 없으므로 BB 를 그대로 씁니다.

다만 세번째 줄에는 둘다 변화가 있으므로 conflict 가 발생합니다.

마지막 줄에는 Base 에서 DDMe 에서만 공백으로 수정되었기 때문에 공백으로 병합합니다.

3 way merge 방법을 쓰면 2 way merge 방법보다 conflict 가 덜 발생하고 어떤것이 변화하였는지 더 명확하게 알 수 있다는 장점이 있습니다.

이상으로 2 way merge3 way merge 에 대해 알아보았습니다.

profile
울산대학교 IT융합학부 22학번

0개의 댓글