我正在使用主分支在当前分支“MyUseCaseTest”中执行 rebase 。
我遇到了 merge 冲突,我尝试使用我配置的 mergetool(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 工具 pop 的命令,
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) ?
我点击是并得到同样的错误,但对于另一个文件。我不知道出了什么问题以及如何解决。手册没有解释这种情况。我找不到任何解释发生了什么或如何修复它的内容。
请帮忙。
最佳答案
我遇到了类似的问题,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用于显示正确的语法。
关于git 无法解决 rebase 冲突,因为 mergetool 没有 pop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30845269/