Git 文件暂存内容与文件头不同

Git 文件暂存内容与文件头不同,git,Git,当我尝试使用git rm--cached时,我收到以下错误: error: the following file has staged content different from both the file and the HEAD: 我知道我可以使用git rm--cached-f绕过这个错误。但是通常当我用git rm--cached解压文件时,我不会得到这个错误 我的问题是,文件的暂存内容与标题不同是什么意思?通常情况下,对于“暂存并修改”的项目,您会获得此状态,即:首先对其进行修改,

当我尝试使用
git rm--cached
时,我收到以下错误:

error: the following file has staged content different from both the file and the HEAD:
我知道我可以使用
git rm--cached-f
绕过这个错误。但是通常当我用
git rm--cached解压文件时,我不会得到这个错误


我的问题是,文件的暂存内容与
标题不同是什么意思?通常情况下,对于“暂存并修改”的项目,您会获得此状态,即:首先对其进行修改,然后对其进行暂存,然后再对其进行修改

必须小心处理此状态,否则,如果您现在运行提交,将导致许多误解,因为只有暂存的更改才会提交(是的,即使在相同的文件上下文中,也只有暂存的更改才会提交),而没有暂存的更改将保留在非暂存区域以供将来提交(如果暂存).

有三个地方值得区分:

  • 在文件中
  • 已接受作为下一次提交的一部分的文件中的更改,即所谓的阶段性更改
  • 已提交的文件中的更改
编辑和提交文件时,只有前两个问题。在这两种状态中(未分级与分级)
git status
显示您所做的更改类型。

在您的终端中,运行:

  • 首先提交您的更改
  • git rm——要取消跟踪的缓存文件名
    则应忽略的内容将被忽略。(如果是文件夹,则在
    rm
    之后添加
    -r

  • 这意味着文件已更改,已移动到阶段状态,现在其内容与头部版本不同。添加包含另一个git Repository的文件夹后也会发生此错误。这很有意义。我已经将该文件添加到git中,并在暂存时对其进行了编辑。谢谢你的洞察力。