[깃, Git] VSCode를 이용한 쉽게 Git Merge Conflict(머지 충돌) 해결하기
[깃, Git] VSCode를 이용한 쉽게 Git Merge Conflict(머지 충돌) 해결하기
먼저 앞선 포스팅에서는 Git Merge Conflict(머지 충돌)을 해결하는 방법에 대해서 살펴봤습니다. 실제, 많은 Merge Conflict(머지 충돌) 이슈가 있고, 이부분에 해결하는 방법에 대해서 단편적으로 봤습니다. 물론, 각 파일을 열어서, 해당 부분에 대한 파일을 수정해서, 진행하는 경우도 많습니다. 하지만, 다양한 에디터 툴에서는 이런한 부분에 대해서 일정부분 자동으로 수정등이 가능한 방법들을 제시하고 있습니다. 그래서 이번 포스팅에서는 VSCode를 바탕으로 Merge Conflict(머지 충돌)가 발생할 때, 파일을 수정하는 방법에 대해서 살펴보겠습니다.
[깃, Git] GitKraken 다운로드 및 설치하기(with repository)
이번 포스팅에선 Commit 및 환경에 관련된 부분에 대해서 GUI툴인 GitKraken을 활용해서 진행하도록 하겠습니다. 이 부분은 다른 다양한 툴에서도 동일한 방법이나, GitKraken을 설치 하실 분들은 상기 링크를 참조하셔서 설치진행하시면 될듯합니다. 그럼 먼저, 이전 포스팅까지 진행된 repository를 활용해서 진행을 하도록 하겠습니다. 먼저 이전까지 진행된 Repository를 GitKraken으로 열어보도록 하겠습니다.
여기에서, merge_b와 master을 merge하도록 하겠습니다. 일부로 Merge Conflict(머지 충돌)을 만들기 위해서, 저는 sub.txt파일을 각각 다르게 수정을 하도록 하겠습니다.
먼저, 현재 브랜치인 merge_b에서 sub.txt 파일에 대한 내용을 수정하도록 하겠습니다. 다음과 같이 파일을 수정하고, 파일을 저장합니다.
그리고나서, GitKraken으로 해당 부분에 대해서 Stage에 올립니다. 다음 빨간 상자를 누르면, 모든 수정 부분에 대해서 stage에 올릴 수 있습니다. 물론, 해당 부분에 대해서 선택해서 올릴 수도 있습니다.
그리고 나서, 하기와 같이 commit 메시지를 입력하고 해당 부분에 대해서 commit을 진행하시면 됩니다.
위의 단계까지 하고 나면, 다음과 같은 화면이 나타날 것입니다. 다음과 같은 화면에서 빨간색 상자에서 보이는 "master"브랜치를 더블 클릭하여 브랜치를 이동하여 주시길 바랍니다.
위의 과정에서 sub.txt파일을 merge_b에서 수정하였습니다. 저는 일부러 merge conflict를 만들기 위해서, master 브랜치에서도 sub.txt를 merge_b와 다르게 수정하도록 하겠습니다.
위의 과정에서 master 브랜치로 전환을 하였습니다. 그리고 나서, sub.txt파일을 수정하도록 하겠습니다. 어차피 merge conflict(머지 충돌)을 만드는 것을 중점적으로 보기 위해서이기 때문에, sub.txt파일을 merge_b와 다르게 수정하겠습니다.
그리고 나서, sub txt를 stage에 add하고 앞서 merge_b에서 진행한 바와 같이 commit을 진행하도록 하겠습니다.
위의 과정까지 진행하면, 다음과 같이 GitKraken에서 명시를 합니다. 그러면, 이제는 master 브랜치에서 merge_b를 merge를 진행하도록 하겠습니다.
그러면 merge의 경우 아직까지 익숙한 Git Bash을 이용하도록 하겠습니다. 현재의 브랜치가 master이기 때문에 다음 명령어를 이용하여 merge_b를 merge를 시도하겠습니다.
$ git merge merge_b
그러면, 앞서서 봐왔던 바와 같이 CONFLICT 화면이 나타납니다.
[윈도우11, windows11] Ms vscode 다운로드 및 설치하기
그러면, 위에서 충돌이 난 부분을 VSCode를 바탕으로 열어보도록 하겠습니다. VSCode가 설치되지 않은 분들은 위의 링크를 바탕으로 진행하셔도 됩니다.
먼저 위에서 Merge Conflict(머지 충돌)이 발생한 파일을 열어 보겠습니다. VS Code에서는 빨간색 보이는 부분과 같이 4가지 메뉴를 제공하고 있습니다.
먼저, 각 메뉴는 클릭할 수 있습니다. 각 부분에 대해서 설명을 하면 다음과 같습니다.
메뉴 | 설명 |
Accept Current Change | 현재 HEAD 기준으로 유지 |
Accept Incoming Change | Merge될 브랜치의 내용으로 전환 * 하기 예시에서는 merge_b의 내용으로 대체 |
Accept Both Changes | Conflict Marker를 제외하고 사용 * 즉, HEAD의 내용과 merge될 브랜치의 내용 모두 통합해서 사용 |
Compare Changes | 충돌난 파일 비교 |
일단, 다음 부분은 Accept Both Changes를 누른 결과입니다. 보시는 바와 같이 Conflict Marker만 삭제되고, HEAD 부분의 내용과 Merge될 브랜치의 내용이 모두 존재합니다.
그리고, 다음 화면은 Compare Changes 부분의 메뉴를 클릭했을 경우입니다. 여기에서 compare 툴 같이 사용이 됩니다.
일단, 위의 방식 중 하나를 선택하여 merge conflict를 해결하여 commit을 진행하였습니다.
이와 같은 방법으로 VSCode를 통해서 Merge Conflict(머지 충돌)을 해결할 수 있었습니다. 물론, 이와 같은 방법을 사용하시면 보다 쉽게 Merge Conflict(머지 충돌)을 해결할 수 있습니다. (그럼에도 사람이 직접해야하는 부분이 있습니다. 그런 부분에 대해서는 피할 수 없는 부분입니다.)
[깃, Git] Git Merge Conflict(머지 충돌) 해결하는 방법
이번 포스팅에서는 [깃, Git] VSCode를 이용한 쉽게 Git Merge Conflict(머지 충돌) 해결하기라는 방법에 대해서 이야기를 해봤습니다. 이 부분과 앞선 포스팅을 바탕으로 Git Merge시에 발생하는 문제에 대해서 잘 피해가시길 바랍니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다.