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

标签 git caching git-rm

我不明白 git rm --cached 之间的区别和 git update-index --assume-unchanged .

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

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

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

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

最佳答案

命令

git rm --cached <file>

用于取消跟踪 Git 分支中的文件。此命令将从暂存区中删除文件,并且还将在您下次提交时从存储库中删除该文件。

命令

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

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

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

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

这是一个link对于 git rm --cached,这是一个 link对于 git update-index --assume-unchanged

关于git - `git rm --cached` 和 `git update-index --assume-unchanged` 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33428702/

相关文章:

带有 VirtualHost 代理的 Apache 2.4 缓存

git - 如何在不从磁盘中删除文件的情况下 git rm 文件?

git - 从 Git 存储库中删除多个已从磁盘中删除的文件

git - 将 refs/remotes 推到新的来源,如何?

java - 如何检查(调试)JPA 查询是否从缓存或数据库获取结果

python - Google App Engine memcache.Client.cas() 因缺少 key 而不断返回 False

git - 暂存删除的文件

git - 在远程服务器上创建项目并在 JetBrains PhpStorm 中使用远程服务器上的 Git

git - 有没有办法将子模块添加到共享目录结构的git repo

git - 使用 sbt-git 构建包导致 "SNAPSHOT-SNAPSHOT"版本限定符