국비교육(22-23)

11일차(3)/GIT(4) : merge conflict

서리/Seori 2022. 10. 20. 22:34

test03

- merge 시에 충돌(conflict)가 있을 경우 충돌을 해소하고 merge하는 방법

 

master 브랜치에는 div와 style을 넣고 커밋,
lab이라는 브랜치에는 div와 같은 위치에 p1을 넣고 커밋한다.

 

- 현재 lab1으로 커서를 옮긴 상태이다. master와 가지가 다른 lab1 branch에는 p1이 커밋되어 있음.

- status를 확인하고, git gui 에서 워킹트리 체크하고 나서 다시 master로 커서 옮기기

 

Auto-merging index.html CONFLICT 

- 자동 머지에 실패. 충돌을 해결한 후에 커밋해야 한다는 뜻!

 

<<<<< HEAD 
=======
>>>>> lab1

 

- 비주얼 스튜디오의 코딩 페이지로 들어와보면 위와 같은 기호가 만들어진 것을 확인할 수 있음.

- merging이 충돌하면 자동으로 이런 기호가 생기고, 커밋하려면 이 기호를 다 지우고 코드를 정리한 다음 다시 시도하면 된다.

 

unmerged paths 

>>>> ====== <<<< 기호를 다 지우고 git status를 입력하면 아직 unmerged 상태라고 나온다.

 

- 위와 같이 겹쳐있던 div, p 요소를 정리해주고(충돌하던 위치 재조정)

 git add, git commit 해주고 다시 git merge lab1 입력하면 머지 성공!

 

- 이후 다시 git gui 를 열어주면 성공적으로 merge 되어있는 것을 확인할 수 있다.(노란색 지점)

 



참고) git gui 와 git gui & 의 차이
- git gui & : git gui 창을 열어놓은 상태로 git bash를 조작할 수 있다.
 (새로운 프로세스에서 실행시킨다는 의미이다.)
- git gui : git gui 창을 열어놓은 상태로 git bash를 조작할 수 없다. 창을 닫은 후에 내용을 작성해야 한다.