Visual Studio Code git과의 병합 충돌을 해결하는 방법은 무엇입니까?


107

브랜치를 다른 브랜치와 병합하려고했는데 병합 충돌이 발생했습니다. Visual Studio Code (버전 1.2.1)에서는 모든 문제를 해결했지만 커밋하려고하면 다음 메시지가 계속 표시됩니다.

변경 사항을 커밋하기 전에 먼저 병합되지 않은 변경 사항을 해결해야합니다.

인터넷 검색을 시도했지만 변경 사항을 커밋하지 못하는 이유를 알 수 없으며 모든 충돌이 사라졌습니다.


1
당신이 말한 것은 정확하지만 문제의 문제를 해결하지 못합니다. 나는 이미 질문의 모든 병합 충돌을 해결했다고 명시했습니다.
annedroiid

답변:


111

VSCode를 사용하면 다음 UI를 사용하여 병합 충돌을 쉽게 찾을 수 있습니다. 여기에 이미지 설명 입력

(상단 표시 줄이없는 경우 "editor.codeLens": true사용자 기본 설정 에서 설정)

현재 변경 사항과 서버에서 들어오는 변경 사항을 나타냅니다. 이렇게하면 충돌을 쉽게 해결할 수 있습니다 <<<< HEAD. 위의 버튼을 누르기 만하면 됩니다.

여러 변경 사항이 있고 모든 변경 사항을 한 번에 적용하려면 명령 팔레트 (보기-> 명령 팔레트)를 열고 입력을 시작하면 Merge Conflict: Accept Incoming, 등을 포함한 여러 옵션이 나타납니다 .


1
최신 업데이트를 받았습니까! 나는 각 줄에서 보여줄 것입니다
Sajeetharan


1
이러한 병합을 가져오고 Visual Studio 코드에서 충돌 옵션을 해결하는 방법.
user630209 apr

1
그것을 활성화하는 방법, 모든 바로 가기?. 내 충돌 파일에서 해당 옵션을 볼 수 없습니다.
user630209 apr

1
@RyeGuy 이러한 옵션은 CodeLens를 통해 표시되므로 CodeLens를 활성화해야합니다 ( code.visualstudio.com/Docs/editor/… 참조 ).
Geri Borbás

73

시행 착오 끝에 병합 충돌이있는 파일을 준비해야한다는 것을 발견 한 다음 병합을 커밋 할 수 있습니다.


1
네, 맞습니다. 병합 충돌이든 푸시하려는 로컬 커밋이든 모든 커밋은 해당 커밋을 푸시하기 전에 준비되어야합니다.
surendrapanday

1
git add .모든 파일을 스테이징하지 않으면 혼란 스러울 경우 프로젝트의 루트 디렉토리에 있는지 확인하십시오. 그것을 알아 내기 위해 언젠가 나를 데려 갔다. 그런 다음 git add .모든 파일을 스테이징하고 다음 작업을 수행했습니다.git merge --continue
bensadiku

그리고 병합 충돌을 해결 한 후 병합 된 변경 사항을 준비하기 전에 먼저 충돌 된 파일을 저장해야합니다.
nclark

22

"병합 버튼"을 찾는 데 어려움을 겪고있는 사람들을 위해.

병합 옵션이있는 작은 전구 아이콘은 "병합 충돌 마커"를 정확하게 클릭 한 경우에만 표시됩니다.

<<<<<<<

단계 (VS Code 1.29.x) :


19
  1. 왼쪽의 "소스 제어"버튼을 클릭합니다.
  2. 사이드 바에서 변경 사항 병합을 참조하십시오.
  3. 해당 파일에 병합 충돌이 있습니다.

VS 코드> 소스 제어> 변경 사항 병합 (예제)


1
이전에는 "현재 변경 사항 수락 | 들어오는 변경 사항 수락 ..."옵션이 있었지만 이제는 이러한 옵션이 줄에서 사라졌습니다.이 옵션을 다시 표시하는 방법이 있습니까?
jet_choong

15

표시되는 오류 메시지는 Git이 여전히 병합 충돌을 해결하지 않았다고 생각한 결과입니다. 실제로 이미 가지고 있지만 해결 된 파일을 인덱스 에 추가 하여이 작업을 수행했음을 Git에 알려야 합니다.

이것은 충돌 해결 하지 않고 실제로 파일 추가 할 수있는 부작용이 있으며 Git은 여전히 ​​있다고 생각합니다. 따라서 갈등을 실제로 해결했는지 확인하는 데 부지런해야합니다. 커밋하기 전에 빌드를 실행하고 코드를 테스트 할 수도 있습니다.


3

VS Code 1.38 또는 "전구"버튼을 찾을 수없는 경우. 충돌 위에 회색으로 표시된 텍스트에주의를 기울이십시오. 취할 수있는 조치 목록이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.