`git rm --cached` 和 `git update-index --assume-unchanged` 之间的区别?

Difference between `git rm --cached` and `git update-index --assume-unchanged`?

我不明白 git rm --cachedgit update-index --assume-unchanged 之间的区别。

我知道 git rm --cached <file> 将从暂存区中删除一个文件。

而且,我知道 git update-index --assume-unchanged <file> 也这样做。

我还在 SO 上看到这两个命令都作为对类似问题的建议提供。

这两个命令是否有其他影响使它们不同?

命令

git rm --cached <file>

用于取消跟踪 Git b运行ch 中的文件。此命令将从暂存区中删除 file 并且 将在您下次提交时从存储库中删除该文件。

命令

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

也会使 file 从暂存区消失。但是,此命令不同,因为它告诉 Git 仅 暂时 忽略对 file 所做的任何更改。因此,当您提交文件时,假设它已经存在,它将保留为存储库的一部分。当您希望 Git 再次查看对 file 所做的更改时,您可以 运行 这样做:

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

如果您之前 运行 assume-unchanged 时它在暂存区,这将 return 文件到暂存区。

这是 git update-index --assume-unchangedlink for git rm --cached, and here is a link