卡在“正在进行合并操作”

问题描述 投票:0回答:8

步骤

  • 在 Visual Studio 中
  • 从远程仓库拉取
  • 1 个合并冲突
  • 手动合并,单击“接受合并”

结果

  • 消息:“...存储库中正在进行合并操作。提交更改以完成合并操作。”
  • 但是,没有什么可提交的:有 0 个待处理的更改,除了中止之外似乎无法执行任何操作。

截图:https://pbs.twimg.com/media/DBOeRIiXsAEbnLP.jpg

背景

  • 远程 git 存储库托管在 Visual Studio Team Services 中
  • 包含所有更新的 Visual Studio 2017
git azure-devops visual-studio-2017
8个回答
85
投票

我的一个项目遇到了非常相似的问题,它在 Visual Studio 2017 中给了我相同的 TFS 消息。我也在使用 git。就我而言,我需要在发布合并之前手动向提交添加注释。由于我必须手动合并冲突,因此需要注释,而不是在没有冲突的合并时自动填充的消息。

我很清楚提交需要注释,但如果我没记错的话,VS 2015 会自动填充合并注释,即使您手动修复了任何合并问题。无论如何,在 VS 2017 中,当存在已解决的冲突时,您需要添加提交注释。


38
投票

当在 Visual Studio 中从远程 Git 存储库进行拉操作期间发生冲突时,您需要进行手动合并以选择远程或本地版本。 单击“接受合并”后,您需要提交此合并操作。你会看到如下图所示。

如果您没有看到此窗口,您也可以从挂起的更改窗口提交。您可以看到 Changes 选项卡下没有任何内容。这是因为您合并时选择了本地版本。当然,“更改”下没有显示任何文件更改。但您仍然需要提交合并操作。


2
投票

如果您安装了 Windows 版 Git (gitk),则可以打开命令窗口,导航到存储库的本地目录并启动它,然后从“文件”菜单中选择“启动 git gui”。那时,您将看到要提交的合并,并且可以从那里进行合并。然后,无论是从 gitk 还是回到 Visual Studio,您现在都可以将所有提交推回原点。


1
投票

我也有同样的问题。修复它:

git reset --hard HEAD // **WARNING**: this will remove your current work, so better stash/backup it

注意:您可以通过以下方式查看最后一次提交 ID:

git rev-parse HEAD // will display the last commit ID

git reset --hard <last_commit_ID>

git reset --soft <last_commit_ID> // this will only move the pointer

0
投票

我使用了像Fork这样的外部工具来中止合并。在 VS 内部似乎没有任何作用。


0
投票

我手动删除了

索引.锁

.git 文件夹中的文件为我解决了问题。


0
投票

在我的例子中,VS 卡住了显示“ApplyMailboxInProgress”

原因是我从命令行运行了一些错误的命令。我不得不中止它的运行

git am --abort

0
投票

手动解决冲突后,正在进行的合并仍然存在。要继续合并过程,您需要单击“提交暂存更改”按钮。

© www.soinside.com 2019 - 2024. All rights reserved.