文件分阶段内容与HEAD不同

Kyl*_*e C 7 git

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

error: the following file has staged content different from both the file and the HEAD:
Run Code Online (Sandbox Code Playgroud)

我知道我可以绕过这个错误git rm --cached -f <filename>.但通常当我取消文件时,git rm --cached我不会收到此错误.

我的问题是,该文件具有不同的分阶段内容是什么意思HEAD.

Lui*_*uis 7

通常情况下,您获得"暂存和修改"项目的此状态,即:首先修改它,然后进行分阶段,然后再次修改.

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

  • 对于那些想知道如何在没有“-f”的情况下使用“git rm --cached”的人。您首先必须在已暂存的更改之上暂存所做的更改。所以`git add file`,它将设置暂存内容等于文件内容。然后您可以使用“git rm --cached file” (4认同)

Mic*_*ann 5

有三个地方(用于更改)值得区分:

  • 在文件中
  • 您已经接受作为下一次提交一部分的文件中的更改,即所谓的阶段性更改
  • 已提交的文件中的更改。

当您编辑和提交文件时,只有前两个重要。在这两个(unstaged 与 staged)git status中,你会看到什么类型的变化。