Visual Studio不会撤消我的git更改

spr*_*t12 6 git version-control visual-studio-2015

出于某种原因,我的VS不会在"撤消更改"后从更改视图中删除文件:

在此输入图像描述

当我查看差异时,实际的更改已经消失,但我希望文件不显示.我想知道一个永久的解决方案.我已经知道我可以在VS之外做一个藏匿或类似的东西来隐藏文件显示.

编辑:

我找到了解决办法.当我撤消时,然后用剩下的文件选择阶段,它们就会消失!

hor*_*str 6

根据您的描述(撤消不会更改文件列表,暂存会强制更新),这听起来像是与 Visual Studio 2015 和 2017 相关的以下问题:

\n

https://developercommunity2.visualstudio.com/t/shGitsh---shUndosh-changes-doe/681074?space=8&q=git+undo+2015

\n

据微软称,Visual Studio 2019也受到影响。目前该问题正在本期追踪中:

\n

https://developercommunity2.visualstudio.com/t/Undo-changes-with-new-git-experience-pre/1170228

\n

根本原因似乎与行结尾有关:

\n

微软:

\n
\n

所以我们怀疑可能dotnet format重写了行结尾(并且仅重写了行结尾),所以现在git status报告有更改的文件。然而,如果你尝试实际 checkout-index,git 实际上不会改变任何东西。但是,git status 认为存在更改,因为 stat-block 导致它相信发生了更改(因为发生了更改)。\n验证这一点的一种方法是从命令行或 Visual Studio .\n暂存所有内容 (git add *)(您可以通过右键单击 > stage 从 Visual Studio 执行此操作)\ngit status(或者,如果在 Visual Studio 中,它将自动刷新状态)\n如果文件从视图中消失,则有这是一个行结束问题,git 突然意识到它们实际上是同一个文件。

\n
\n

记者:

\n
\n

是的!暂存所有内容使所有文件消失:-)

\n
\n

微软:

\n
\n

凉爽的!因此,\xe2\x80\x99 就是我们所知道的!\n对于仅 EOL 更改,SHA 更改不会\xe2\x80\x99 更改。Git 显然在内部将这些存储为仅 LF\ncheckout 和 checkout-index 都不会覆盖磁盘上的文件\n\xe2\x80\x8b基本上,因为 git 是我们的真相来源,所以我们得到了误导性信息。然而,我认为 git 在性能方面可能做出了正确的决定。话虽这么说,从用户体验的角度来看,这非常令人困惑,所以我们\xe2\x80\x99将对此进行评估。\n我们\xe2\x80\x99正在评估如何改进此用户体验。

\n
\n

该问题仍然悬而未决,但似乎已经确定了根本原因。目前,只有解决方法。

\n