【问题标题】:Stuck at "A merge operation in progress"卡在“正在进行合并操作”
【发布时间】:2017-11-02 10:02:45
【问题描述】:

步骤

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

结果

  • 消息:“...存储库中正在进行合并操作。提交您的更改以完成合并操作。”
  • 但是,没有要提交的内容:有 0 个待定更改,除了 Abort 之外似乎没有其他操作。

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

上下文

  • 远程 git 存储库托管在 Visual Studio Team Services 中
  • Visual Studio 2017 包含所有更新

【问题讨论】:

  • 我在这里要做的第一件事就是从 Git bash 运行 git status。这告诉你什么?
  • $ git status On branch develop 你的分支和'origin/develop'已经分道扬镳,分别有1个和2个不同的提交。 (使用“git pull”将远程分支合并到你的)没有提交,工作目录干净
  • 我从来没有在Visual Studio中使用过Git,但是完全有可能存在这样的bug。
  • 感谢 Tim,我能够通过 Git bash 手动提交更改。似乎是 Visual Studio 中的一个错误。
  • 上次我使用 IDE 时,Eclipse eGit 插件也有许多烦人的已知错误。由于这个和其他原因,我通常选择使用 bash。很高兴为您提供帮助。

标签: git azure-devops visual-studio-2017


【解决方案1】:

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

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

【讨论】:

  • 谢谢,当我可以再次重现该问题时,我会尝试这种方法。
  • @BernardVanderBeken 也许你可以创建一个小测试来验证。就像更改一个本地存储库中的文件并推送到 VSTS。然后在另一个存储库中,编辑相同的文件并提交。之后从远程拉。你会遇到冲突。
【解决方案2】:

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

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

【讨论】:

  • 你是对的!我没有填写提交消息(在合并之前),这就是为什么我在这个主题的同一时刻卡住了。我做了什么:我在一个文件中做了一个小/不重要的更改,并通过填写评论消息提交了它。事实上,当我查看历史记录时,在这次提交中不仅包含了这一点小改动,还包含了所有合并的文件。在此之后 - 一切正常。非常感谢!
  • 该消息具有误导性。它应该改为说“输入评论”,而不是看起来像一个进程仍在运行。
  • 太棒了。我也刚刚手动添加了一条新评论,之后提交按钮就可以使用了。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    我手动删除了

    index.lock

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2020-03-21
      相关资源
      最近更新 更多