在Visual Studio中使用Git时出现“冲突阻止检出”错误

68

我在 Visual Studio 中使用 Git。 当我尝试同步时,出现以下消息:

发生错误。 详细信息:libgit2 引发了一个错误。 类别 = checkout(MergeConflict)。 1个冲突阻止检出。

我不知道这些冲突是什么,也不知道如何解决它们。 有人能帮我解决这个问题吗?


3
这可能会帮助您了解如何进入Visual Studio中相对“隐藏”的“解决冲突”UI:https://dev59.com/questions/GV4c5IYBdhLWcg3w3dZ_#28720255 - Leniel Maccaferri
8个回答

57

我曾通过在Visual Studio的Git命令提示符中解决了同样的问题,因为它能够给你更多的能力:

http://msdn.microsoft.com/en-us/library/vstudio/dd286572.aspx

你也可以安装这个扩展程序来简化操作(它可以让你不必每次都输入密码):

http://gitcredentialstore.codeplex.com/

然后我使用了以下命令:

git pull // I got an error on this step
git stash
git pull

更多有关命令的信息请参阅这里:

http://git-scm.com/docs/git-pull

http://git-scm.com/book/en/Git-Tools-Stashing

http://git-scm.com/docs/git-commit

正如 CharlesB 所说,这是由于“您的更改与另一个分支的更改之间的冲突”。


2
好的,你实际上要做的就是将你的未提交更改移动到另一个“stash”中,以便之后继续进行。请在操作时注意这一点。另一个选项是撤消所有未排除的挂起更改。 - Highmastdon
2
如果您有兴趣从Visual Studio而不是命令行解决此问题,请投票支持:https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/4576531-provide-stash-support-in-visual-studio-tools-for-g - gwenzek
我在 Visual Studio 中没有发现任何问题。VS 表示我的所有文件都是最新的,但我无法切换到一个分支。尝试使用命令行检查分支时,它告诉我 .suo 文件存在冲突。我使用命令行将该文件存储起来,然后就可以切换分支了。 - Caverman

44

您有一些未提交的更改。请提交或撤销这些更改,然后Git "pull" 就可以正常工作了。


3

我在使用Visual Studio进行“pull”请求时遇到了这个问题。

有一个隐藏文件发生了变化:.ntvs_analysis.dat

为了找到这个隐藏文件并解决问题,我执行了以下操作:

  1. 显示隐藏文件,以查看是否有我看不到的文件发生了变化。
  2. 在项目目录中,使用Git GUI撤消我发现的隐藏文件的更改。

之后,我的“pull”请求成功了。


控制面板 => 文件夹选项 => 查看 => 显示隐藏的文件和文件夹


3
我曾经遇到过这个问题,解决方法是“强制执行”……我没有任何需要提交的更改,也没有需要同步的提交,但在尝试拉取另一个开发人员推送的更改时仍然出现了此错误。
最终,我只是在文件系统中砍掉了我的本地repo,并重新克隆了远程分支。 好了!
也许不是最优雅的解决方案,但如果您不担心失去任何本地更改,它就能起作用。

0

这听起来像是没有将 Visual Studio 自动生成的可执行文件和其他输出添加到 .gitignore 文件中的结果。您不希望对这些文件进行源代码控制。有关更多信息,请参见此处


0
我们的环境要求不依赖Nuget自动包恢复,我遇到的问题是由于:
  • 一些成员只使用GIT命令控制台提交/拉取/推送。
  • 我依赖VS2013 Git工具进行提交/拉取/推送。
  • Git命令控制台推送packages文件夹中的所有内容
  • Visual Studio工具忽略packages文件夹
因此,冲突是由于试图通过VS拉取添加到HDD上的packages文件夹中的文件已经存在。
现在我只是删除了相关的packages文件夹/文件,并重新执行了拉取操作,它奏效了。
希望这可以帮助到您。

0

如果您在本地进行了一些更改,那么只需提交更改并不同步此提交即可。

更改 => 输入提交消息 => 提交并不同步此提交,然后您就可以正确地拉取。

如果您的分支没有更改,则继续操作 => 打开评论提示符 => 然后输入以下行:

  1. git pull

  2. git stash

3. git pull


-1

当我将一个分支更改为另一个分支时,会出现错误,所以我关闭了Visual Studio并重新打开Visual Studio,这对我有用。


这并没有对问题提供答案。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- [来自审阅] (/ review / late-answers / 32346532) - Simas Joneliunas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接