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认为已更改的文件。
现在,我试过的东西没有解决它(所以你不必):
最后,我必须从磁盘上删除文件,然后从团队资源管理器窗口中进行“撤消”:
不是最理想的解决方案,但似乎解决了这个问题。
我使用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
继续的方法是:
上一篇: TFS/GIT in VS Cannot switch to master because there are uncommitted changes