2013-03-29 3 views
7

new 브랜치에서 일부 변경을 약속했습니다.git은 충돌이 합병된다는 것을 알려주지 만 병합 할 파일이 없다는 것을 알려줍니다.

나는 체크 아웃을 master으로합니다.

나는 병합했을 때 :
$ git merge new 
Auto-merging js/site.js 
CONFLICT (content): Merge conflict in js/site.js 
Automatic merge failed; fix conflicts and then commit the result. 

그래서 내가 kdiff3을 설치하고 내 설정 파일을 구성하고 내가 mergetools를 사용하려고 할 때 내가 가지고 :

$ git mergetool kdiff3 
No files need merging 

가 나는 DIFF를 실행하고 출력 이 :

diff --cc js/site.js 
index 8c17d62,7955b13..0000000 
--- a/js/site.js 
+++ b/js/site.js 
@@@ -72,4 -81,18 +81,22 @@@ function doSmallScreen() 

    $(document).ready(function() { 
     calculateScreen(); 
- }); 
++<<<<<<< HEAD 
++}); 
++======= 
+  $(window).resize(function() { 
+   delay(function() { 
+    calculateScreen(); 
+   }, 500); 
+  }); 
+ }); 
+ 
+ 
+ var delay = (function() { 
+  var timer = 0; 
+  return function (callback, ms) { 
+   clearTimeout(timer); 
+   timer = setTimeout(callback, ms); 
+  }; 
-})(); 
++})(); 
++>>>>>>> new 

이 문제를 해결하는 방법을, 나는 간단한 교장 선생님이 문제를 해결하려면에 관해서는 내가 혼란 스러워요 nner는 가능합니다. 새로운 지사 정보를 잃어 버리지는 않겠지 만, 무엇이 잘못되었는지, 왜 병합 도구를 사용할 수 없는지 이해하고 싶습니다.

나에게는 병합 충돌이 있지만 이상한 파일은 병합 할 필요가 없습니다.

답변

5

mergetool 명령이 잘못되었다고 생각합니다.

$ git mergetool 

또는

$ git mergetool --tool=kdiff3 

당신은 항상 수동 (git mergetool --help)를 확인할 수 있습니다 자식 명령으로 막히는 경우

해야한다.

추가 정보 : 난 그냥 올바른 명령을 실행하는 경우에도이 문제가 있었다 https://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html

+0

고마워! – Trufa

5

:

$ git mergetool 

그것은 rerere [에드이 링크를 참조 (켜져 데 함께 할 수있는 뭔가가있을 수 있습니다 :

: 링크는 더 이상 내가 각 충돌 파일 mergetool 킥오프 .gitconfig에 두 개의 별칭을 작성하여 문제를 해결

)] 작동하지 않습니다

을 (를) 추가하십시오.

  • git ls-files -u :; gitconfig

    # List conflicted files 
    list-conflicts = !git ls-files -u | cut -f 2 | sort -u 
    
    # Force mergetool to recognize conflicts 
    force-mergetool = !git list-conflicts | xargs git mergetool 
    

    TL 박사 요청에 의해, 여기에 대한 간략한이가하는 일에 대한 설명의 충돌과 병합 시도 후,이 몇 가지와 함께, 모든 병합되지 않은 파일을 나열 외부 정보 및 반복; 바로 병합 후 실행하면, 이것은 기본적으로 파일 경로

  • | sort -u입니다이 출력의 두 번째 필드 밖으로
  • | cut -f 2 인하 중복을
  • | xargs git mergetool 파이프 파일이 목록에 없어 충돌이 기본적으로 모든 파일입니다 GUI 병합 도구를 시작하는 mergetool 명령 (하나만 설정했다고 가정)

나열된 파일을보고 싶다면 첫 번째 명령을 실행할 수 있습니다. 두 번째 명령은이 모든 것을 병합 도구로 파이프합니다 (사용자의 취향에 맞게 mergetool 대신 merge을 사용할 수 있습니다). 마음에

git ls-files -u | cut -f 2 | sort -u | xargs git mergetool

git ls-files -u | cut -f 2 | sort -u

유지 : 당신이 별칭을 추가하기 전에 자신에 그것을 밖으로 시도 할 경우

, 당신은 단지 명령 라인을 통해이 두 가지 명령 중 하나를 실행할 수 있습니다 이것은 단지 당신이

+1

예! 나는 왜 upvotes, 우리는 rerere를 사용하는 유일한 사람이 될 수 없어 궁금해! – pdem

+0

이것이 무엇을하는지 더 설명 할 수 있습니까? 나는이 문제에 직면 해 있으며 기본적으로 내 파일을 병합 할 수 없다 ... – Chrisgozd

+0

@Chrisgozd, 답변에 대한 설명 추가 – kghastie

5

내가

git mergetool . 
시도 wanre 경우 어떤 결과를 얻을 수

것으로 보입니다.