spr*_*t12 6 git version-control visual-studio-2015
出于某种原因,我的VS不会在"撤消更改"后从更改视图中删除文件:
当我查看差异时,实际的更改已经消失,但我希望文件不显示.我想知道一个永久的解决方案.我已经知道我可以在VS之外做一个藏匿或类似的东西来隐藏文件显示.
我找到了解决办法.当我撤消时,然后用剩下的文件选择阶段,它们就会消失!
根据您的描述(撤消不会更改文件列表,暂存会强制更新),这听起来像是与 Visual Studio 2015 和 2017 相关的以下问题:
\n\n据微软称,Visual Studio 2019也受到影响。目前该问题正在本期追踪中:
\nhttps://developercommunity2.visualstudio.com/t/Undo-changes-with-new-git-experience-pre/1170228
\n根本原因似乎与行结尾有关:
\n微软:
\n\n\n所以我们怀疑可能
\ndotnet 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凉爽的!因此,\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