Appia의 IT세상

[깃, Git] VSCode를 이용한 쉽게 Git Merge Conflict(머지 충돌) 해결하기 본문

IT_OS_ETC../[OS]Windows10&11

[깃, Git] VSCode를 이용한 쉽게 Git Merge Conflict(머지 충돌) 해결하기

Appia 2023. 11. 25. 07:55
반응형

[깃, Git] VSCode를 이용한 쉽게 Git Merge Conflict(머지 충돌) 해결하기

[깃, Git] VSCode를 이용한 쉽게 Git Merge Conflict(머지 충돌) 해결하기

 

먼저 앞선 포스팅에서는 Git Merge Conflict(머지 충돌)을 해결하는 방법에 대해서 살펴봤습니다. 실제, 많은 Merge Conflict(머지 충돌) 이슈가 있고, 이부분에 해결하는 방법에 대해서 단편적으로 봤습니다. 물론, 각 파일을 열어서, 해당 부분에 대한 파일을 수정해서, 진행하는 경우도 많습니다. 하지만, 다양한 에디터 툴에서는 이런한 부분에 대해서 일정부분 자동으로 수정등이 가능한 방법들을 제시하고 있습니다. 그래서 이번 포스팅에서는 VSCode를 바탕으로 Merge Conflict(머지 충돌)가 발생할 때, 파일을 수정하는 방법에 대해서 살펴보겠습니다. 

 

[깃, Git] GitKraken 다운로드 및 설치하기(with repository)

 

[깃, Git] GitKraken 다운로드 및 설치하기(with repository)

[깃, Git] GitKraken 다운로드 및 설치하기(with repository) 이전에 소스트리(SourceTree)와 포크(Fork)을 다운로드 하고 설치하는 부분에 대해서 포스팅을 한 적이 있습니다. 물론, 소스트리(SourceTree)와 포크(

appia.tistory.com

 

이번 포스팅에선 Commit 및 환경에 관련된 부분에 대해서 GUI툴인 GitKraken을 활용해서 진행하도록 하겠습니다. 이 부분은 다른 다양한 툴에서도 동일한 방법이나, GitKraken을 설치 하실 분들은 상기 링크를 참조하셔서 설치진행하시면 될듯합니다. 그럼 먼저, 이전 포스팅까지 진행된 repository를 활용해서 진행을 하도록 하겠습니다. 먼저 이전까지 진행된 Repository를 GitKraken으로 열어보도록 하겠습니다. 

이전 포스팅까지 진행된 Git Repository

여기에서, merge_b와 master을 merge하도록 하겠습니다. 일부로 Merge Conflict(머지 충돌)을 만들기 위해서, 저는 sub.txt파일을 각각 다르게 수정을 하도록 하겠습니다. 

먼저, 현재 브랜치인 merge_b에서 sub.txt 파일에 대한 내용을 수정하도록 하겠습니다. 다음과 같이 파일을 수정하고, 파일을 저장합니다. 

merge_b의 sub.txt 수정 내용

 

그리고나서, GitKraken으로 해당 부분에 대해서 Stage에 올립니다. 다음 빨간 상자를 누르면, 모든 수정 부분에 대해서 stage에 올릴 수 있습니다. 물론, 해당 부분에 대해서 선택해서 올릴 수도 있습니다. 

merge_b의 sub.txt 수정 내용

 

그리고 나서, 하기와 같이 commit 메시지를 입력하고 해당 부분에 대해서 commit을 진행하시면 됩니다. 

merge_b의 sub.txt 수정 내용에 대한 commit

 

위의 단계까지 하고 나면, 다음과 같은 화면이 나타날 것입니다. 다음과 같은 화면에서 빨간색 상자에서 보이는 "master"브랜치를 더블 클릭하여 브랜치를 이동하여 주시길 바랍니다. 

merge_b의 sub.txt 수정 내용에 대한 commit 결과

 

위의 과정에서 sub.txt파일을 merge_b에서 수정하였습니다. 저는 일부러 merge conflict를 만들기 위해서, master 브랜치에서도 sub.txt를 merge_b와 다르게 수정하도록 하겠습니다. 

master 브랜치로 브랜치 전환

 

위의 과정에서 master 브랜치로 전환을 하였습니다. 그리고 나서, sub.txt파일을 수정하도록 하겠습니다. 어차피 merge conflict(머지 충돌)을 만드는 것을 중점적으로 보기 위해서이기 때문에, sub.txt파일을 merge_b와 다르게 수정하겠습니다. 

master의 sub.txt파일 수정

 

그리고 나서, sub txt를 stage에 add하고 앞서 merge_b에서 진행한 바와 같이 commit을 진행하도록 하겠습니다. 

master브랜치의 sub.txt파일 수정후 commit

 

위의 과정까지 진행하면, 다음과 같이 GitKraken에서 명시를 합니다. 그러면, 이제는 master 브랜치에서 merge_b를 merge를 진행하도록 하겠습니다. 

commit 후의 GitKraken의 화면

 

그러면 merge의 경우 아직까지 익숙한 Git Bash을 이용하도록 하겠습니다. 현재의 브랜치가 master이기 때문에 다음 명령어를 이용하여 merge_b를 merge를 시도하겠습니다. 

$ git merge merge_b

그러면, 앞서서 봐왔던 바와 같이 CONFLICT 화면이 나타납니다. 

merge 시도 결과

 

[윈도우11, windows11] Ms vscode 다운로드 및 설치하기

 

[윈도우11, windows11] Ms vscode 다운로드 및 설치하기

[윈도우11, windows11] MS vscode 다운로드 및 설치하기 파이썬 및 다양한 코딩 프로그램을 사용하기 위해서, 다양한 에디터 프로그램을 사용합니다. 이전에는 각 언어마다, 에디터 프로그램들이 다 달

appia.tistory.com

그러면, 위에서 충돌이 난 부분을 VSCode를 바탕으로 열어보도록 하겠습니다. VSCode가 설치되지 않은 분들은 위의 링크를 바탕으로 진행하셔도 됩니다. 

 

먼저 위에서 Merge Conflict(머지 충돌)이 발생한 파일을 열어 보겠습니다. VS Code에서는 빨간색 보이는 부분과 같이 4가지 메뉴를 제공하고 있습니다. 

Merge Conflict(머지 충돌) 발생한 파일을 VS Code로 열 경우

 

먼저, 각 메뉴는 클릭할 수 있습니다. 각 부분에 대해서 설명을 하면 다음과 같습니다. 

메뉴 설명
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될 브랜치의 내용이 모두 존재합니다. 

Accept Both Changes 클릭 결과

 

그리고, 다음 화면은 Compare Changes 부분의 메뉴를 클릭했을 경우입니다. 여기에서 compare 툴 같이 사용이 됩니다. 

Compare Changes 클리 결과

 

일단, 위의 방식 중 하나를 선택하여 merge conflict를 해결하여 commit을 진행하였습니다. 

Merge Conflict 해결 후 모습

이와 같은 방법으로 VSCode를 통해서 Merge Conflict(머지 충돌)을 해결할 수 있었습니다. 물론, 이와 같은 방법을 사용하시면 보다 쉽게 Merge Conflict(머지 충돌)을 해결할 수 있습니다. (그럼에도 사람이 직접해야하는 부분이 있습니다. 그런 부분에 대해서는 피할 수 없는 부분입니다.)

 

[깃, Git] Git Merge Conflict(머지 충돌) 해결하는 방법

 

[깃, Git] Git Merge Conflict(머지 충돌) 해결하는 방법

[깃, Git] Git Merge Conflict(머지 충돌) 해결하는 방법 이전 포스팅에서, Git Merge commit이 생성되는 경우에 대해서 살펴봤습니다. 물론, 모든 merge의 경우 아무런 문제가 없다면 매우 이상적인 상황일 것

appia.tistory.com

 

이번 포스팅에서는 [깃, Git] VSCode를 이용한 쉽게 Git Merge Conflict(머지 충돌) 해결하기라는 방법에 대해서 이야기를 해봤습니다. 이 부분과 앞선 포스팅을 바탕으로 Git Merge시에 발생하는 문제에 대해서 잘 피해가시길 바랍니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments