Visual Studio 2013不提供在Git pull上进行合并

tra*_*max 35 git git-merge merge-conflict-resolution visual-studio-2013

我正在使用Visual Studio 2013 Update 4和git(在Visual Studio Online上托管).我在远程分支中有2个本地提交和2个提交.提交没有本地更改:

工作目录清理

当我尝试在Visual Studio中执行Pull(或Fetch)时,我收到错误:

发生错误.详细消息:1冲突阻止结账

发生错误. 详细消息:1冲突阻止结账

是的,有冲突,我应该合并.根据这个页面,我应该得到一个解决冲突链接.但我在VS中没有看到.

我可以在VS之外进行合并,但这不是重点.同时,我的同事运行相同的设置可以进行合并而没有任何问题.我的VS出了什么问题?

ps我安装了msysgit可能会搞乱配置.根据这篇文章 我的全球.gitconfig看起来像:

[user]
    mail = trailmax@stackoverflow.com
    name = trailmax
    email = trailmax@stackoverflow.com
[core]
    excludesfile = C:\\Users\\trailmax\\Documents\\gitignore_global.txt
    autocrlf = true
    editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor
[diff]
    tool = vsdiffmerge    
[difftool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
    keepbackup = false
    trustexistcode = true
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = true
[mergetool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
    keepbackup = false
    trustexistcode = true
[credential]
Run Code Online (Sandbox Code Playgroud)

Len*_*rri 55

在我的情况下,我看不到该Resolve the conflicts选项,因为我还没有提交本地更改,我试图与远程更改同步.一旦我提交了本地更改,然后再次尝试同步,就会Resolve the conflicts出现链接.

所以重点是:首先提交更改,然后尝试同步.一个合并将启动Visual Studio将让你去通过每个的冲突.

在此输入图像描述

  • 是的......我看到了,但决定在这里发布这个答案,以防万一像我这样的人到达你的问题.也许他们面临同样的问题,不知道如何绕过它.这是谷歌回归给我的唯一问题.:)感谢downvote.这真的有帮助. (3认同)

Kar*_*llo 12

我遇到了同样的问题,其中"发生错误.详细信息:1冲突阻止结账"显示没有解决冲突的选项,如Leinel的回答所示.

原因是由于未跟踪的文件与要拉出的文件相同.我刚刚删除了未跟踪的文件并重试了拉.


azu*_*eca 6

我遇到过同样的问题.事实证明,我有一个需要包含的未跟踪文件.因此,请在"更改"选项卡中查看未跟踪的文件.


Von*_*onC 1

如果拉取期间的冲突与行尾字符有关:

git config --global core.autocrlf false
Run Code Online (Sandbox Code Playgroud)

这应该避免任何自动 eol 转换。

您可以在“ Why does git think every line of an untouched file haschanged ”中了解更多信息,了解如何在工作树中检测这种情况 ( git diff --word-diff-regex=.)。