忽略已经提交到Git存储库的文件

示例

如果您已经将文件添加到Git存储库,并且现在想停止对其进行跟踪(以便以后的提交中不再显示该文件),则可以将其从索引中删除:

git rm --cached <file>

这将从存储库中删除文件,并防止Git跟踪进一步的更改。该--cached选项将确保该文件没有被物理删除。

请注意,文件的先前添加内容仍将通过Git历史记录可见。

请记住,如果从索引中删除文件后其他任何人从存储库中提取文件,那么他们的副本将被物理删除


您可以让Git假装该文件的工作目录版本是最新的,并使用“跳过工作树”位读取索引版本(从而忽略其中的更改):

git update-index --skip-worktree <file>

写入不受此位影响,内容安全仍然是第一要务。您将永远不会失去宝贵的,被忽略的变化。另一方面,此位与隐藏冲突:要删除此位,请使用

git update-index --no-skip-worktree <file>


有时错误地建议您对Git撒谎,并假设该文件没有检查就保持不变。乍一看,它忽略了对该文件的任何进一步更改,而不将其从其索引中删除:

git update-index --assume-unchanged <file>

这将迫使git忽略文件中所做的任何更改(请注意,如果您对此文件进行任何更改或将其隐藏,则忽略的更改将丢失

如果您希望git再次“关心”该文件,请运行以下命令:

git update-index --no-assume-unchanged <file>