一个由libgit2引起的错误。类别=21(合并冲突)。

9

我正在使用VS 2013。

我卡住了。所有内容都提交到了本地存储库。我尝试从远程拉取,但出现以下错误:

发生错误。详细信息:libgit2引发了一个错误。类别= 21(MergeConflict)。 1个未提交的更改将被合并覆盖

我没有未提交的更改...或者说我并不知道有未提交的更改。


当我遇到这个错误时,我通过在本地提交或撤销所有更改来解决它。只有这样,我才能开始通过GUI解决我的冲突。@Dan - 我知道这不是你的问题。 - Robino
3个回答

5

看起来使用命令提示符运行git pull允许我执行pull操作。我不熟悉命令提示符。


哪个命令提示符?我尝试了cmd、包管理器、命令窗口... git pull 在它们任何一个上都不起作用... 我运行这个命令时应该在哪个文件夹里? - solidau
@Juventus18 你安装了git吗?当你尝试git pull时,是否收到了错误消息? - TheRealDanBiss
是的,它已经安装了,至少在VS中已经安装了。我之前一直在使用VS2013的GUI界面,但当我尝试将更改拉入我的repo时,出现了与你类似的错误。当我尝试从VS的“命令窗口”运行git pull时,会出现错误“命令git无效”,我应该使用哪个命令提示符?我运行命令时应该在哪个文件夹中? - solidau
@Juventus18 我认为如果你从http://git-scm.com/download/win下载并安装git,那应该可以解决你的问题。一旦安装完成,请再次尝试运行git pull命令。抱歉,我已经有一段时间没有使用了,所以我在尽力回忆我当时具体是怎么做的。 - TheRealDanBiss
6
好的,我想通了。我不需要重新安装 Git,但是在 VS 团队资源管理器中的“更改”窗口中,您可以展开“操作”链接,那里有一个选项“打开命令提示符”。在此处运行 git pull 会告诉我哪个文件导致问题,然后我就能够纠正这种情况了。感谢您的帮助! - solidau

3
通常情况下,当您修改了一个文件但未暂存更改,并且您尝试合并会写入该文件的内容时,您会看到此消息。不幸的是,Visual Studio 2013存在一个错误,即使文件未被修改,它也会确定您的文件已被修改。当您的存储库中有一个文件的行结束符与您的core.autocrlf设置不符时,该错误会显现出来。
此错误已在Visual Studio 2013 Update 2中得到修复:http://support.microsoft.com/kb/2927432

我安装了更新,现在出现的错误与之前相同,只是类别从21变成了ssh。 - TheRealDanBiss
这实际上是另一种错误:Visual Studio不支持SSH远程。 - Edward Thomson
但我没有做任何不同的事情。我安装了更新并尝试同步。我没有使用我知道的ssh。 - TheRealDanBiss
哦!我的错误,非常抱歉,我误读了。git status显示了什么?你能发布一下团队资源管理器更改页面的截图吗?(我只是想确保没有遗漏。) - Edward Thomson
2
看起来从命令提示符中运行 git pull 允许我执行拉取操作。我不熟悉命令提示符。 - TheRealDanBiss

0

enter image description here

从"团队资源管理器"的"排除更改"部分撤销您的Web配置文件。希望它能起作用。这对我有用。


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