5. merge and conflict

dorongpark·2022년 11월 20일
0

Git

목록 보기
6/7

merge tool 설정

git config --global -e

실행시 기본 에디터인 vscode가 실행되며, 나온 창에 merge 툴 설정을 추가해준다

Git merge

현재 위치한 branch에 다른 branch를 병합하는 과정, merge는 주종관계가 존재하므로 어디에 무엇을 병합하는가가 중요하다. '어디에' 에 해당하는 branch로 이동하여 merge를 병합해야 한다.

my name is noma 가 있는 main branch에
are you? 가 추가된 dev branch를 병합할 계획이다. 그러므로 checkout을 통해 main branch로 이동해야함.

  1. git checkout 이동할branch명

  1. git merge 병합할branch명

  2. git log를 통해 이력 조회하기

congflict

branch를 merge 하는 과정에서 충돌이 일어날 수 있음, 혹은 push, pull 하는 과정에서도 충분히 충돌이 일어날 수 있음

상황을 보면 main branch(hello noma)에서 분기한
1. dev2(hello,base commit 상태) branch 와 2. main(hello,zero. 로 다시 commit) branch가 있는 상황이며, main branch에 dev branch를 다시 merge 하려는데 conflict가 발생하였다. 컴퓨터 입장에는 추가된 내용은 없고 같은 내용이 변경만 되었기 때문에 commit된 내용중 어느 것으로 merge해야 하는지 헷갈리는 상황이여서 conflict를 만들어 사용자에게 알려주고 있다.

conflict 해결방법

  1. mergetool 실행

conflict 발생 이후 아래와 같이 mergetool 을 실행하면 conflict 난 파일들이 차례로 열림

git mergetool

  1. vscode에서 coflict 파일 수정

  1. 둘중 맞는 코드를 선택하여 수정하고 저장

  2. conflict 해제

git add test.txt
git commit

  1. vscode의 commit message 저장 후 완료

  1. Git log로 merge 확인

결국 conflict 해결은 confilct 난 파일들의 코드를을 남길 부분만 남기고 삭제하고 저장한 후에 add,commit 하면 conflict가 해결됨

profile
야 너도 분석 할수 있어

0개의 댓글