티스토리 뷰

Git

GIT CLI - Branch & Conflict 5. 3way merge

Programmers 2021. 5. 25. 22:54
반응형

3 way merge에 대한 개념 및 예제

 

2 way merge

here there 2 way merge
A A A
H B ? conflict
C T ? conflict
H T ? conflict

branch => here, there

☞ here + there  (2 way merge)
A + A → A 
H + B →? 충돌, 알 수 없음
C + T →? 충돌, 알 수 없음
H + T →? 충돌, 알 수 없음

 

3 way merge

here base there 2 way merge 3 way merge
A A A A A
H B B ? conflict H
C C T ? conflict T
H D T ? conflict ? conflict

branch => here, there
base => here, there의 조상 branch

☞ here + there  (2 way merge)
A + base(A) + A → A : here, base, there 3개다  동일하므로 A 
H + base(B) + B → H : 수정된 내용은 H라는 것을 base를 통해 알 수 있다.
C + base(C) + T → T :  수정된 내용은 T라는 것을 base를 통해 알수 있다.
H + base(D) + T →? : base를 통해서 H, T 모두 수정된 것을 알 수 있고, 결정권을 알려주기 위해 충돌을 알려준다.

3 way merge는 혁신적인 방법으로 GIT의 큰 특징이다.

 

출처: https://opentutorials.org/course/3840/23687

반응형
댓글
공지사항