ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git과 Github 정복] Github 사용 Manual 8 - Merging할 때 발생되는 충돌 처리
    컴퓨터 알아가기/Git & Github 2023. 6. 23. 19:30
    728x90
    반응형

    지난 Manual 6~7편에서는 Github의 꽃이라고 할 수 있는 Branch의 개념과 그에 따른 실습을 간단하게 해 보았습니다. 사실 이 부분까지만 알면 혼자서 Github를 사용할 수 있는 이론은 갖추었다고 볼 수 있습니다. 지금부터는 실제 발생될 수 있는 상황들을 필요한 부분만 정리해 나가는 과정을 갖고자 합니다. 역시 본 내용은 나동빈의 Github강좌를 기본으로 공부하고 있습니다. 

     

    ▒ Merging할 때 충돌현상 처리 

     

    Merging(병합)시 충돌된다는 개념은 무엇인지 생각해 봐야 합니다. 

    두개의 Branch가 존재하고 내용이 다를 경우 충돌(Conflict)이 일어난다고 보면 됩니다. 그리고 이러한 충돌이 발생한 경우 최종 결정권자가 내용을 결정하여 수정후 Main Branch로 올리면 됩니다. 

     

    말은 쉽지만 좀 더 알기 쉽게 지난시간 작업한 내역을 기준으로 설명하도록 하겠습니다. 

     

    1. 서로 다른 Main Branch와 Edit Branch 

     

    Edit Branch와 Main Branch의 내용을 좀 다르게 만들어 봅니다. 그리고 commit message까지 적용해 봅니다. 저같은 경우는 Edit Branch에는 나누기 내용을 넣고 Main Branch에는 나누기 내용과 더불어 hello 출력 console.log를 하나 더 만들어 보겠습니다.  

     

    각자 작업을 하기위해 git checkout을 이용하여 이동하여 작업하고 commit message까지 만들어 보도록 하겠습니다. 

     

    ① Edit Branch 작업

     

    Edit Branch로 이동하여 작업해 봅니다. 

     

    edit branch로 이동

     

    ▶ 나누기 작업 추가 

     

     

    ▶ Stage에 올리기 

     

    Stage라고 하면 push전 상황입니다. push는 항상 최종 Merge된 상태를 올려야 합니다. push전 상황이라 하면 add 하고 commit하는 단계를 뜻합니다. 

     

     

    로그 상태를 확인하면 Edit Branch에서 나누기 기능을 추가한 것을 볼 수 있고 Main Branch에는 아직까지 곱하기 기능만 있는 것을 알 수 있습니다. 

     

     

     

    ② Main Branch  작업

     

    같은 방식으로 Main Branch도 작업을 하도록 하겠습니다. 이 과정들은 내용을 공부하기 위하여 상황을 만드는 과정입니다. 실무에서는 이런 상황들이 이미 발생되어 있는 경우임을 알고 진행해야 합니다. 

     

    이번에는 만드는 과정을 알기때문에 쭉 작업한 내역을 올리도록 하겠습니다. 

     

    Main Branch로 이

     

    추가작업

     

    Main Branch 작업내역 Stage전까지 과정

     

     

    ③ Git Log의 변화

     

    이제 git log를 보면 Edit와 Main 내역이 달라졌기 때문에 log는 각각의 Branch만 가리키게 됩니다. 

     

    Main Branch에서 본 log

     

    Edit Branch에서 git log를 해 보도록 하겠습니다. 

     

    Edit Branch에서 본 log

     

    2. Branch Merge 

     

    ① Git Merge

     

    브랜치 내용이 다른 상황에서 Merge를 진행해 보도록 하겠습니다. Merge가 되야 최종 push가 됩니다. 일단 두 브랜치간 내용이 다르기 때문에 충돌이 일어나는 것을 볼 수 있습니다. 

     

    항상 Merge는 Main Branch에서 진행합니다. 

     

    Merge후 충돌메시지

     

    ② Conflict 내역 보기

     

    내 PC에서 충돌난 파일을 오픈해 보면 다음과 같이 표시 됩니다. 

     

     

     

    ③ 최종 수정

     

    내역을 보면 Edit Branch에서 들어온 내역을 Incoming Change로 표시되어 있고 Main Branch에서 들어온 내역은 Current Change로 되어 있습니다. 원하는 방향으로 선택하여 최종 선택하고 저장하면 되겠습니다. 저는 Accept Current Change를 선택하고 진행해 보죠. (이는 VS code 기준으로 편집기에 따라 다르지만 최종 저장 필요)

     

    ④ Stage 올리고 Push

     

    수정 및 저장이 완료 되었으면 stage에 올리고 push까지 진행해 봅니다. 

     

    staging & merging

     

    git log를 보면 Main Branch에 최종 적용된 것을 볼 수 있습니다. 

     

     

     

    최종본  Push를 하고 Github에서도 확인해 봅니다. 

     

     

    ⑤ 필요없는 Branch 지우기

     

    이제는 Edit Branch가 필요없기 때문에 직접 지워줍니다. 

     

    지우는 명령어는 git branch -D 브랜치명입니다. 

     

     

    지금까지 기본적이지만 가장 필요한 Github사용법에 대해 공부를 해 보있는데요. 이 부분에 대한 내역을 자신의 것으로 만든다면 Github사용에 대해서는 문제가 없을 것으로 보여집니다. 

     

    이제 남은 것은 Git에 대한 명령어 추가와 원격저장소인 Github 관리하는 볍을 공부하면 되는데 이 부분은 직접 부딪치고 스스로 학습하면 충분히 될 것으로 보여지네요. 

    반응형

    댓글

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Designed by Tistory.