VS2013 Git -- 不能完成操作,因为以下文件存在更改

8
使用VS 2013,我对一个文件进行了更改,成功提交并推送到服务器。当我要切换到另一个分支时,出现以下错误: 无法切换到CM,因为存在未提交的更改。在切换分支之前,请提交或撤销您的更改。有关详细信息,请参见输出窗口。 输出窗口当然显示了我刚提交和推送的文件。在“更改”区域中没有列出任何文件。
SourceTree没有显示未暂存的文件,并且让我轻松地更改分支。
有什么想法吗?

你尝试过关闭VS并重新打开吗?我经常遇到类似的问题,重启可以解决它。 - Kalel Wade
6个回答

3

听起来很奇怪,但我上次遇到这个错误信息时,只需要物理删除冲突的文件并单击输出窗口中的“清除全部”按钮即可。在清除错误消息之前,该错误会一直存在。

然而,在我的情况下,我正在进行Pull操作,但错误消息是相同的(系统声称有待提交的提交,但更改窗口为空)。


我做了同样的事情,物理上删除了文件,这让我可以切换分支一次,但第二次问题又出现了。 - Crypth

1
我尝试了其他两个答案,但都没有解决问题。但这是我尝试的方法,我相信它在我的情况下使其重置了:
  • 在资源管理器中找到有问题的文件
  • 将其重命名以删除扩展名
  • 返回VS,您会发现更改窗口显示该文件已被重命名
  • 撤消该文件的重命名更改
这应该可以重置文件的状态,使其忘记文件上的更改。
现在,您可以简单地切换、拉取或执行任何被阻止的操作。

0
使用以下命令:
$ git fetch --all
$ git reset --hard origin/master     
$ git checkout master
$ git pull origin master

0

我曾经遇到过类似的问题,在我的情况下,我用一个新的扩展名为“.JPG”的文件替换了一个同名的“.jpg”文件。

在输出窗口中更改文件扩展名后,一切都正常工作了。


0

我来到这里是为了寻找解决同样问题的方法。感谢上面提供的提示,我发现根项目目录缺少.gitignore文件。在我从另一个C#项目中复制一个文件到该目录后,问题消失了。我的.gitignore文件非常传统。


0
这对我有用:
  1. 查看当前分支的历史记录
  2. 将硬重置到您的最后一次提交
  3. 检出其他分支

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接