VS中的TFS / GIT由于存在未提交的更改,因此无法切换到主站

我在visualstudio.com上为VS 2013解决方案设置了GIT存储库。 当我习惯于使用TFS时(在GIT模式下),资源库运行良好。

然后我决定熟悉分支,所以我创建了一个分支。 我在这个分支做了很多改变。 我已经提交了一段时间的更改,并执行了一次Sync以将我的本地提交推送到visualstudio.com存储库。 这一切都有效。

我遇到的问题是我失去了切换回主分支的能力。 我无法将我新创建的分支合并到主设备中。 每次我尝试做任何涉及主控的事情时,我都会在VS中遇到以下错误:

由于未提交更改,因此无法切换为主人。 在切换分支之前提交或撤消更改。 详情请看输出窗口。

输出窗口从不包含任何'细节'...

此消息提到什么“未提交的更改”? 由于我无法进入主分支,因此我无法承诺进行任何更改(我也不确定我想要吗?)。 而我目前(只有其他)分支已经承诺和同步。

我真的只是学习TFS,GIT和源代码控制。 我该如何安全地解决这个问题?


好的,我自己和rwkiii有同样的问题 - 这是Visual Studio中的一个错误,并不是一个容易解决的问题。 以下是症状:

Visual Studio声明你不能合并/切换braches / etc。 因为你有没有提交的更改 - 这很好,除了所有的更改已经提交。

由于未提交更改,因此无法切换为主人。 在切换分支之前提交或撤消更改。 详情请看输出窗口。

这里的截图更清晰。

如果您查看输出窗口,它可能显示为空,但您必须将“显示输出源”更改为“源代码管理 - Git”。 这将列出Visual Studio认为已更改的文件。

现在,我试过的东西没有解决它(所以你不必):

  • 重新启动Visual Studio
  • 重新启动机器
  • 切换项目
  • 使用外部git工具(所有这些都表示“没有更改”)
  • 混帐重置
  • 对文件进行任意更改并提交。 承诺没问题,VS仍然认为还有更多的变化
  • 最后,我必须从磁盘上删除文件,然后从团队资源管理器窗口中进行“撤消”:

    不是最理想的解决方案,但似乎解决了这个问题。


    我使用git命令提示符来解决问题。 我不能保证它是最好的方法或唯一的方法,但它在Visual Studio 2013中适用于我。

    在团队资源管理器中的更改下,选择打开命令提示符。

    在命令提示符下键入:

    git状态

    它将列出可供更改的文件。

    复制这些文件(以防万一),然后可以在命令提示符中放弃工作目录中的更改。

    git checkout - mysubdir myfile.ext

    不要尝试在Visual Studio中更改分支,它仍然无法工作!

    而是在命令提示符切换到有问题的分支。

    git checkout branchname

    当你回到Visual Studio时,它会提示你重新加载项目。 之后,分支将正确更新到您从命令行选择的分支。

    心连心


    未被更改的更改意味着您已修改了一个或多个已添加到git中的文件,并且这些更改未在提交或您的git存储中“保存”。

    当您在分支之间切换时,您不允许发生无限制的更改(即使没有添加到git中的新文件也可以),因为其他分支中的更改可能会覆盖您的未被更改的更改。

    我不熟悉Visual Studio如何与git集成,因为我自己在Powershell中使用了PoshGit

    继续的方法是:

  • 撤消更改
  • 提交您的更改
  • 或储存您的更改(请参阅中断工作流程部分)。
  • 链接地址: http://www.djcxy.com/p/27091.html

    上一篇: TFS/GIT in VS Cannot switch to master because there are uncommitted changes

    下一篇: Visual Studio 2013 git, only Master branch listed