git在切换分支时不再强制提交



我使用的是git版本2.32.0.windows.2和Visual Studio代码1.58.2(最近更新(。在大约一周前,如果我正在处理一个功能分支,修改了一个文件,并签出了另一个分支,我会从git收到一条消息,如果不在当前分支中提交修改后的文件,我就无法更改分支。没关系。

从上周开始,在与上述相同的情况下,我不再收到警告,但我可以更改到另一个分支,消息是:

Switched to branch 'development'
M       src/someFile.js
Your branch is up to date with 'origin/development'.

更令人不安的是,开发分支中的文件并没有用开发分支中实际的版本"刷新",这意味着我在功能分支中所做的更改也显示在VS代码的文件资源管理器中。

有人能告诉我为什么"正常"的分支切换行为可能突然发生了变化吗?这是与更新的git或VS Code应用程序有关,还是与我无意中更改的某些设置有关?

更新时间:根据这个重复的问题,我发现有时git会迫使我在签出另一个分支之前提交对当前分支的更改,有时它不会。到目前为止,我从未被允许更改到另一个分支机构,无论对当前分支机构的更改有多小。

而且,这个问题的答案并不能解释为什么当我切换到另一个分支时,我应该看到该分支的文件版本,而不是刚刚修改过的文件版本。对此仍然没有有效的解释。

本地未提交的更改是工作树的一部分,它们不链接到任何分支。它们只存在于您的本地文件中。

如果Git过去不允许您更改,那只是因为本地修改的文件在HEAD提交和切换到分支之间不同。在这种情况下,Git需要用存储在分支提交中的内容来更新文件内容,当您进行本地更改时,它无法安全地执行此操作。

让我找到重复的问题,我相信有几个…(但措辞不同(

最新更新