본문 바로가기

Python_Beginer/GIT

[GIT]2 way merge and 3 way merge

[ 기본 구조 ]

Base
A
B
C
D

 

[ BASE 버전관리를 위해 Branch1 / Branch2를 생성 ]

Branch1 Base Branch2
A A A
B B B
C C C
D D D

 

[ 각 Branch의 내용을 수정 ]

Branch1 Base  
A A A
H B B
C C T
H D T

 

[ Branch1 와 Branch2 Merge ] [ 2 Way Merge ]

Branch1 Branch2 Merge
A A A
H B Collision
C T Collision
H T Collision

Conflict : 3개 존재

Branch1 와 Branch2를 비교해서 Merge

Conflict 은 사용자가 직접 수정한다.

 

[ Branch1 와 Branch2 Merge ] [ 3 Way Merge ]

Branch1 Base Branch2 Merge
A A A A
H B B H
C C T T
H D T Collsion

Conflict : 1개 존재

Base : Branch1와 Branch2의 공통 부모(조상)

A A A : Branch1와 Branch2와 Base를 비교하였을때 수정 값이 없으므로 A

H B B : Branch1와 Branch2와 Base를 비교하였을때 Branch2는 수정을 안하고 Branch1만 수정 했으므로 H

C C T : Branch1와 Branch2와 Base를 비교하였을때 Branch1는 수정을 안하고 Branch2만 수정 했으므로 T

H D T : Branch1와 Branch2와 Base를 비교하였을때 Branch1 / Branch2를 수정햇으므로 Conflict