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

Posted

技术标签:

【中文标题】在 Visual Studio 中使用 Git 时出现“冲突阻止签出”错误【英文标题】:"Conflicts prevent checkout" error using Git in Visual Studio 【发布时间】:2014-01-17 12:40:33 【问题描述】:

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

发生错误。详细消息:libgit2 引发错误。 Cetegory = 结帐(MergeConflict)。 1 冲突阻止结帐

我不知道冲突是什么以及如何解决它们。谁能帮我解决这个问题?

【问题讨论】:

这可能会帮助您了解如何在 Visual Studio 中访问有点“隐藏”的Resolve conflicts UI:***.com/a/28720255/114029 【参考方案1】:

我已经通过在 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 所说,这是由于“您的更改与来自另一个分支的更改之间的冲突”。

【讨论】:

好的,您实际上所做的只是将您的开放更改移动到另一个“存储区”,以便之后继续。当你这样做时,请注意这一点。另一种选择是撤消所有待处理的更改(未排除) 如果您有兴趣从 Visual Studio 解决此问题,而不是从命令行解决,请投票:visualstudio.uservoice.com/forums/121579-visual-studio-2015/… 我在 Visual Studio 中看不到任何问题。 VS 说我的所有文件都是最新的,但我无法切换到分支。使用命令行尝试检查分支,它告诉我与 .suo 文件存在冲突。我使用命令行来存储该文件,然后它让我切换分支。【参考方案2】:

您有一些未提交的更改。提交或撤消这些更改,然后 Git "pull" 将起作用。

【讨论】:

【参考方案3】:

我在通过 Visual Studio 发出“拉取”请求时遇到了这个问题。

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

为了发现这个隐藏文件并解决问题,我:

    显示隐藏文件只是为了查看我看不到的文件是否有更改。 在项目目录中,使用 Git GUI 撤消对我找到的隐藏文件的更改。

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


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

【讨论】:

【参考方案4】:

如果您在本地有一些更改,那么您只需提交更改而不同步此提交

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

如果您的分支中没有更改,请继续操作 => 打开评论提示 => 然后输入此行

    git 拉

    git stash

3.git 拉动

【讨论】:

【参考方案5】:

我们的环境要求我们不能依赖Nuget自动包恢复,我遇到的问题是由于:

部分会员只使用GIT命令控制台提交/拉取/推送。 我依靠 VS2013 Git 工具来做 Commit / pull /push。 Git 命令控制台推送包文件夹中的所有内容 Visual Studio 工具忽略包文件夹

所以冲突是由于包文件夹中的文件试图通过 VS 拉取添加,但已经存在于 HDD 上。 现在我只是删除了相关的包文件夹/文件并重新拉取,这很有效。

希望这会有所帮助。

【讨论】:

【参考方案6】:

我遇到了这个问题,我通过“蛮力”解决了这个问题...我没有要提交的更改,也没有要同步的提交,但在尝试引入其他开发人员推送的一些更改时仍然出现此错误.

我最终只是在文件系统中破坏了我的本地存储库并重新克隆了远程分支。瞧!

也许不是最优雅的解决方案,但如果您没有担心丢失的任何本地更改,它就可以工作。

【讨论】:

【参考方案7】:

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

【讨论】:

以上是关于在 Visual Studio 中使用 Git 时出现“冲突阻止签出”错误的主要内容,如果未能解决你的问题,请参考以下文章

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

在 Visual Studio 2019 中使用新项目创建 Git 存储库

如何在 Visual Studio 2019 中使用 git bash 终端配置文件?

如何配置 Visual Studio 代码以在保存时提交到 git?

在 Visual Studio 2015 git repo 中切换分支时发生错误,无法 rmdir 访问被拒绝

Git 和 Visual Studio 项目参考