2017-12-01 17 views
2

: 그에 대한git에서 충돌을 해결하는 방법은 무엇입니까? 나는 다음과 같은 메시지가 당길 때

Automatic merge failed; fix conflicts and then commit the result. 

그래서, 나는 갈등을 해결하려고 (자식 같은 제안을) 나는 these 지침을 따르십시오. 내가해야 할 첫 번째 것들 중

는 텍스트 편집기에서 "문제"파일을 열고 문제는 내가에 그런 것들을 볼 수 없다는 것입니다 그

If you have questions, please 
<<<<<<< HEAD 
open an issue 
======= 
ask your question in IRC. 
>>>>>>> branch-a 

같은 라인을 찾아 내 파일. 특히 나는 머리를 찾았고 거기에 없다. 당신은 다음을 사용할 수 있습니다

+1

"git status"는 "both"면이 수정 된 파일을 나열합니까? 올바른 파일을보고 있는지, 전체 파일에서 충돌 마커를 찾았습니까? –

+1

일부 편집자에서는 충돌 표시자를보기 위해 파일을 다시 열어야합니다. 편집자는 백그라운드에서 파일 변경 사항을 보지 않습니다 (일부는 더 나빠서 자신의 변경 사항으로 파일을 다시 덮어 씁니다). – Ferrybig

답변

3

는 GUI 및 텍스트 편집기 방법을 사용하여, 내가 여기에 설명 할 것입니다 자식 충돌을 해결하는 방법은 여러 가지가 있습니다.

텍스트 편집기를 사용하여 git 충돌을 해결합니다.

좋아하는 편집기, 예, 메모장, gedit, vim, nano 또는 Eclipse 중 하나를 엽니 다.

  1. <<<<<<<<과 같은 충돌 마커를 추가 파일 자식에 충돌이있을 때마다.

  2. 당신이 당신의 텍스트 편집기에서 파일을 열 때, 당신은 라인 <<<<<<< HEAD

  3. ======== 후 HEAD 또는 기본 지점에서 변경 사항을 볼 수 있습니다, 그것은 >>>>>>>>YOUR_BRANCH_NAME

  4. 로 다른 브랜치의 변경 사항을 분할
  5. 분기 변경을 유지할지 여부를 결정할 수 있습니다. 변경 한 내용을 유지하려면 충돌 표시자인 <<<<<<<, =======, >>>>>>>을 삭제 한 다음 병합을 수행하십시오.

변경 사항을 적용하는 명령입니다.

git add . or git add "your_file" 
git commit -m "Merge conflicts resolved" 

자식 충돌이

은 무엇 파일의 충돌을 많은 병합 당신이 한 경우 GUI 해결? 이 경우 GUI를 사용할 수 있습니다. GUI를 선택할지 여부는 개인 선택입니다. GUI에서는 나란히 비교할 수 있습니다. 초보자도 쉽게 변화를 볼 수 있습니다.

사용할 mergetool을 사용하도록 git을 구성해야합니다. 예 : meld, kdiff3 또는 vimdiff. 다시 말하지만 사용자가 선호하는 부분까지 달려 있습니다. 나는 멜드를 사용한다. 여기에이 도구를 설치해야합니다. 설치 후 구성해야합니다. 당신이 병합 해결할 수

git config merge.tool meld 

git mergetool -t meld 

는 그런 다음 병합 충돌을 해결하기 위해, 텍스트 편집기를 사용하여 해결에서 4로 2 단계를 따를 수 있습니다 충돌.

-1

,

git mergetool --tool=kdiff3 
+1

그게 * kdiff3 * 실제로 설치됩니다. – Zereges