DevOps/GIT

github#7 3 ways merge

aliceintr 2020. 11. 20. 11:20
반응형

git merge에서 conflict 가 발생하면 쉽게 수정할 수 있는 툴이 있다. - kdiff3.

Google 에 검색하면 download 가능 하니 필요한 분은 검색 해 보길 바란다.

 

그리고 다양한 사람과 협업을 하기 때문에 다른이와 작업을 merge하는 방법을 알아보자.

 

여기에는 2가지 방식이 있는데

  • 2 way merge
  • 3 way merge

3 way merge 방식이 더 안전하고 적은 conflict 을 발생하는 방법이라 할 수 있다.

 

예를 들어 A 개발자, B 개발자가 각자의 브랜치에서 동시에 작업을 수행한 후 병합하고자 한다면

아래와 같은 표로 표현 할 수 있다.

예를 들어 A file : contents 는 파일명은 A 안에 내용은 contents 라고 볼 수 있고

C file 같은 경우 3가지 브랜치가 다 다른 contents를 가지고 있다. (파일명은 같음)

 

2 way 는 Base 파일을 고려하지 않고 A 와 B의 차이점만 비교 하기 때문에  1),3) 케이스의 경우는 Base 코드가 없어 병합 후 추가해야 할 파일인 지 아닌지 아는 것이 불분명하고 .

2) 케이스의 경우는 A,B developer 다 파일이 있지만 내용이 다르기 때문에 어떤부분을 추가 해야하는지 모른다.

 

따라서 가장 conflict 가 적은 3 way merge 를 추천하는 것이다.

 

A developer Base B developer 2-way merge 3-way merge
A file : contents A file : contents   1) conflict B developer에게 A file 이 없어도 병합할 때 A file 생성됨
B file : contents B file : contents B file : contents B file : contents B file : contents
C file : apple banana C file : apple C file : apple grape 2) conflict 4) conflict
  D file : contents D file : contents 3) conflict A developer에게 D file 이 없어도 병합할 때 D file 생성됨
ref : youtu.be/J0W-WA0aYJI

 

 

 

 

 

 

 

 

내용이 도움이 되셨다면 블로그 구독하기 부탁드리겠습니다.

* 이 글의 모든 저작권은 aliceintr에 있으며 무단 배포 및 사용은 자제해 주시기 바랍니다. *

반응형

'DevOps > GIT' 카테고리의 다른 글

github#9 git remote repository  (0) 2020.11.21
github#8 git stash  (0) 2020.11.20
github#6 git merge conflict  (0) 2020.11.20
github#5 git HEAD file  (0) 2020.11.20
github#4 branch  (0) 2020.11.17