Collaboration Tool/Git & Github

핵심 쏙쏙 Git] 2-9 ~ 2-11 (Merge conflict)

littlezero48 2022. 11. 11. 12:07

 

 

 

Merge conflict

두 브랜치가 같은 파일의 동일한 부분을 수정해 머지하는 과정에서 일어나는 충돌.

이를 어떻게 해결할 것인지 배운다. 

 

 


conflict 실습

1. 두개의 브랜치를 생성하여 각각 같은 파일을 다르게 수정하고 커밋한다.

 

 

2. feature/stock부터 merge

합쳐질 브랜치인 main으로 checkout > 합칠 커밋 선택 > 병합

 

 

3. 이제 같은 파일을 수정한 feature/jjigae_rtan을 merge

 

 

4. conflict 발생!

상태를 보면 커밋이 되지 않은채 회색으로 이어져 있는데 이는 충돌 해결을 하면 색깔이 바뀌어 이어진다

파일 상태를 보면 충돌에 대해 표시되어 있다. 

 

 

 

5. add / staging하기 전 파일을 더블클릭해 파일을 열어준다. (안 열린다면 탐색기로 폴더 열어 해당파일을 따로 열면된다)

 

6.  ====== 을 기준으로 <<<<< 쪽과 >>>>> 로 나뉜 모습을 확인할 수 있는데 

여기서 HEAD는 지금 현재 내가 있는 브랜치의 상태를 보여주고

아래 브랜치 이름이 붙은 부분은 합칠 브랜치가 이 상태라는 걸 보여준다. 

 

 

7. 충돌을 수정하는 방법은 본인이 코드를 보고 맞는대로 수정하면 된다. 

꼭 나눠진 통채로 한쪽을 다 지워버리는 방식이 아니어도 둘을 섞어 수정해도 되고 별개의 것을 추가해도 된다.

다만 별개의 수정사항이 들어갔다면 나중에 추적이 어려워지니 병합할 때는 기존사항을 중심으로하여 병합하고 새로운 커밋으로 넣도록하자.  

수정을 했다면 <<<< HEAD, ======= , 브랜치이름 >>>>> 파일에서 지우도록 한다.

 

 

 

8. 수정했다면 소스트리에서 미리보기로 파일이 내가 원하는 대로 변경되었는지 확인하고

파일을 add 하여 올려준다 그리고 커밋

 

9. 커밋하면 아까는 일부가 회색이었던 브랜치가 색깔이 바뀌어 연결되어 있는 모습을 확인할 수 있다. 

 

 

10. 그럼 충돌 해결!