git cant无法解决rebase冲突,因为mergetool不会弹出

时间:2015-06-15 12:32:10

标签: git visual-studio merge git-merge rebase

我正在我目前的分支机构中进行一次变革' MyUseCaseTest'与主分支。

我遇到合并冲突,我试图使用我配置的mergedol(vsdiffmerge)来恢复。这是.gitconfig文件

[diff]
    tool = vsdiffmerge
[difftool]
      prompt = false
[difftool "vsdiffmerge"]
      cmd = '"%VSINSTALLDIR%Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" //t
      keepbackup = false
      trustexitcode = true
[merge]
      tool = vsdiffmerge
[mergetool]
      prompt = false
[mergetool "vsdiffmerge"]
      cmd = '"%VSINSTALLDIR%Common7/IDE/vsdiffmerge.exe"' "$REMOTE" "$LOCAL" "$BASE" "$MERGED" //m
      keepbackup = false
      trustexitcode = true

以下是我试图让vsdiffmerge工具弹出的命令,

git mergetool
git mergetool -t vsdiffmerge

但是他们不这样做而是给出了这个错误

$ git mergetool -t vsdiffmerge
Merging:
src/OneDirection.cs
src/CustomBatch.cs

Normal merge conflict for 'src/OneDirection.cs':   
{local}: modified file   
{remote}: modified file 
/libexec/git-core/git-mergetool--lib: line 136: fg: no job control 
merge of src/OneDirection.cs failed 
Continue merging other unresolved paths (y/n) ?

我单击是并获得相同的错误,但是对于另一个文件。我不知道有什么问题以及如何解决它。手册不解释这种情况。我无法找到解释正在发生的事情或如何解决问题的任何事情。

请帮忙。

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,orad的回答指出了我正确的方向 - 路径是问题(我还不习惯linux风格的路径......)最终为我工作的是:

[diff]
    tool = vsdiffmerge
[difftool]
  prompt = false
[difftool "vsdiffmerge"]
    cmd = \"C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/IDE/vsdiffmerge.exe\" "$LOCAL" "$REMOTE" //t
    keepbackup = false
    trustexitcode = true
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = false
[mergetool "vsdiffmerge"]
    cmd = \"C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/IDE/vsdiffmerge.exe\" "$REMOTE" "$LOCAL" "$BASE" "$MERGED" //m
    keepbackup = false
    trustexitcode = true

尽管能够使用%VSINSTALLDIR%来避免绝对文件路径真的很棒。感谢Mark Kadlec显示正确的语法。

答案 1 :(得分:-2)

一旦发生冲突,您只需打开该文件并搜索HEAD即可查看冲突地点并手动解决。