2011-03-04 8 views
44

Git Gui (Git 1.7.4.msysgit.0의 0.13.GITGUI)가 Windows에서 TortoiseMerge (1.6.11.20210 x64)를 인식 할 수 없지만 처음으로 Git 병합을 수행하려고합니다! 7. an answer to a similar question을 바탕으로, 나는 다음과 같은 구성을 변경 한 : 나는 힘내 GUI를 시작하고 "실행이 도구를 병합"할 때왜 Windows에서 내 자식 병합 도구로 TortoiseMerge를 사용할 수 없습니까?

$ git config --global merge.tool tortoisemerge 
$ git config --global mergetool.tortoisemerge.cmd 'TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"' 
$ git config --global --list 
...snip... 
merge.tool=tortoisemerge 
mergetool.tortoisemerge.cmd=TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED" 
$ 

불행하게도, 나는 오류 Unsupported merge tool 'tortoisemerge'을받을 수 있습니다.

누구든지 내가 잘못한 것을 말할 수 있습니까? 여기 내 ~/.gitconfig의 관련 섹션의 : 명령 행에서 git mergetool을 실행할 때

TortoiseMerge 위의 설정과 함께 잘 작동

[merge] 
     tool = tortoisemerge 
[mergetool "tortoisemerge"] 
     cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\" 

업데이트. Git Gui만이 문제를 가지고있는 것 같습니다. : -/

+0

경로에'TortoiseMerge.exe'이 있습니까? 전체 경로 지정을 시도 했습니까? –

+0

@Ben - 실제로 내 경로에 있으며 전체 경로를 지정해도 효과가없는 것 같습니다. : -/ –

+0

병합 할 파일에 공백이 있습니까? – VonC

답변

52

UPDATE는 :

원래의 대답은 지금은 사용되지 않습니다.

최신 자식이있는 경우

그냥 한 시간을 git config merge.tool tortoisemerge

중요 할 : 명령에 .exe 확장자를 추가하지 않습니다.

=== 원래 대답 (지금 오래된) ===

내가 tortoisemerge 그래서 난이 테스트 할 수 없습니다를 설치하지 않은,하지만 난 확신이 문제는 자식 GUI를 사용하는 것입니다 C : \ Program Files (x86) \ Git \ share \ git-gui \ lib \ mergetool.tcl이라는 파일을 사용하여 작업하는 각 병합 도구를 정의하고에 정의 된 병합 도구에 대해 "지원되지 않는 병합 도구"오류를 표시합니다. mergetool.tcl에 정의 된 것과 일치하지 않는 gitconfig.

그래서 작동하려면 mergetool에 다음과 같이 추가 할 수 있어야합니다.TCL :

tortoisemerge { 
    set cmdline [list TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"] 
} 

이 다른 코드 위의 새로운 tortoisemerge 항목을 넣어 :

default { 
     error_popup [mc "Unsupported merge tool '%s'" $tool] 
     return 
} 
+6

2 년 후에 마침내 –

+0

나는 최신 Windows 용 git-for-windows 2.12.2를 64 비트 윈도우에 설치했지만 tortoisegitmerge.exe는 PATH에 없으므로 업데이트 된 답변 및 오래된 답변이 작동하지 않습니다. 둘 다보고했습니다 : 지원되지 않는 병합 도구 'tortoisemerge'. 반면, 내 고문은'E : \ Program Files \ TortoiseGit \ bin \ TortoiseGitMerge.exe'에 설치됩니다. 그래서, 어떤 아이디어? 감사. – ollydbg23

+0

완벽하게 댓글을 달았습니다. 잘 지내라! –

17

이 시도 :

[merge] 
tool = tortoise 

[mergetool "tortoise"] 
cmd = "TortoiseMerge.exe" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED" 

출처 : http://programmersunlimited.wordpress.com/2010/07/01/getting-git-to-use-tortoisemerge/

+1

같은 문제가 있습니다. (현재 오류는'지원되지 않는 병합 도구 '거북이'입니다.) –

+7

전체 경로를 입력하고 큰 따옴표를 이스케이프 처리해야합니다 :'cmd = \ ""c : "$ REMOTE"- 광산 : "$ LOCAL"- 병합 : "$ MERGED" ' – lkuty

+1

문제가 생겼습니다. 'cmd = \ ""c :/Program Files/TortoiseGIT/bin/TortoiseGitMerge.exe "\"-mine \ "$ REMOTE \"-base \ 파일 이름에 공백이있는 파일이 있습니다. "$ LOCAL \"'. TortoiseMerge가 아닌 TortoiseGitMerge에서 작동합니다. – Kai

2

시도는 경로의 확인하기 위해 명령 줄에서 TortoiseMerge.exe를 입력. 내 컴퓨터> 등록 정보> 고급> 환경 변수> 시스템 변수 : 경로를 통해 추가하지 않을 경우.

그런 다음 명령 프롬프트에서 자식 작업 디렉토리 내에서 명령 프롬프트 git difftool에서 사용하려면 다음 명령

git config --replace --global diff.tool tortoisemerge 
git config --replace --global difftool.diffmerge.cmd "TortoiseMerge.exe -base:\"$BASE\" -theirs:\"$REMOTE\" -mine:\"$LOCAL\" -merged:\"$MERGED\"" 
git config --replace --global difftool.prompt false 

를 통해 구성합니다.

한 번에 하나씩 파일을 보여주기 때문에 diff 파트만으로도 더 쉽게 처리 할 수있는 TortoiseGit을 설치하는 것이 좋습니다.

+0

GUI 기반 도구를 열어 Git cmd의 모든 충돌 파일을 병합하려면 어떻게합니까? – Master

4

내가 작업 한 경우에 대한을의 mergetool은 이미 tortoisemerge로 설정했지만, 그것을 찾을 수 없습니다. 완전한 위치를 제공

Windows에서 근무 :

git config --global mergetool.tortoisemerge.cmd "\"C:\\Program Files\\TortoiseGit\\bin\\TortoiseGitMerge.exe\" -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"" 
1

이 문제는 최신 자식에서 해결 나타납니다 (나는 git version 1.9.4.msysgit.1있다).

C:\git\build>git mergetool 

This message is displayed because 'merge.tool' is not configured. 
See 'git mergetool --tool-help' or 'git help config' for more details. 
'git mergetool' will now attempt to use one of the following tools: 
tortoisemerge emerge vimdiff 

C:\git\build>git config merge.tool tortoisemerge 

C:\git\build>git mergetool 
No files need merging