반응형
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 |