ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 충돌 해결하기
    Git & Sourcetree 2022. 2. 17. 18:14
    728x90

    git pull

     

    충돌을 알아보기 전에 pull에 대해 먼저 알아보자.

     

    다음은 origin의 main이 내 로컬의 main보다 앞서있는 상황이다. (origin = 원격 저장소, 깃헙)

     

    여러사람과 협업할 때는 자주 일어나는 일이다.

     

    master가 main임

     

    여기서 pull을 하게 되면 masterorigin/master가 같아진다. 습관적으로 pull을 하자.

     

     

    pull은 다음과 같이 설명할 수 있다.

    • 서버의 내용이 최신일 경우 pull을 적용한다.
    • pull = fetch + merge
    • 때문에 pull을 하는 상황에도 충돌이 일어날 수 있다.

     

     

     

     

     

     

    😎충돌을 해결하는 법을 알아보자.

     

    상황은 다음과 같다.

     

    main 브랜치의 최신 커밋에서 특정 브랜치를 생성

     

    main 브랜치와 다른 브랜치에서 모두 같은 파일을 커밋했을 경우

    충돌을 위한 브랜치 생성

     

    conflict 브랜치에서 파일을 수정 후 커밋

     

    main으로 체크아웃을 옮긴 후 일부러 같은 파일을 수정하고 커밋

     

     

     

    1. 에디터를 통해 수동적으로 수정하기

     

    저번 시간에도 한 번 해봤던 내용이다.

     

    친절하게도 머지 도중 충돌이 일어나면 충돌이 일으키는 파일에서 변경점을 표시해준다.

     

     

    HEAD가 현재 자신이 체크아웃중인 브랜치이다.

     

     

    수정을 위해 제공하는 버튼을 사용하든, 본인이 직접 수정하든 상관없다. 

     

    해당 파일의 내용만 제대로 작성되있으면 문제없다.

     

     

    수정이 완료되었다면 다시 해당 파일을 스테이지에 올리고 커밋하면 된다.

     

     

     

    2. 소스트리의 충돌해결 사용하기

     

    방금 전과 같은 상황으로 main에서 다른 브랜치를 병합하는데 충돌이 일어났다.

     

    이후 소스트리에서 충돌이 일어난 파일에서 '충돌 해결'을 해주면 손쉽게 해결된다.

     

    '내것'은 현재 내가 체크아웃중인 main

    '저장소'는 병합하려는 브랜치가 된다.

     

     

    참 쉽죠?

     

     

    이 후 정상적으로 파일을 스테이지에 올리고 커밋하면 완료!

     

    728x90

    댓글

Designed by Tistory.