rm, mv
最后更新于:2022-04-01 00:51:07
## git rm 将文件从缓存区移除
`git rm` 会将条目从缓存区中移除。这与 `git reset HEAD` 将条目取消缓存是有区别的。 “取消缓存”的意思就是将缓存区恢复为我们做出修改之前的样子。 在另一方面,`git rm` 则将该文件彻底从缓存区踢出,因此它不再下一个提交快照之内,进而有效地删除它。
默认情况下,`git rm file` 会将文件从缓存区和你的硬盘中(工作目录)删除。 如果要在工作目录中留着该文件,可以使用 `git rm --cached`
### git mv git rm –cached orig; mv orig new; git add new
不像绝大多数其他版本控制系统,Git 并不记录记录文件重命名。它反而只记录快照,并对比快照以找到有啥文件可能被重命名了。 如果一个文件从更新中删除了,而在下次快照中新添加的另一个文件的内容与它很相似,Git 就知道这极有可能是个重命名。 因此,虽然有 `git mv` 命令,但它有点多余 —— 它做得所有事情就是 `git rm --cached`, 重命名磁盘上的文件,然后再执行 `git add` 把新文件添加到缓存区。 你并不需要用它,不过如果觉得这样容易些,尽管用吧。
我自己并不使用此命令的普通形式 —— 删除文件。通常直接从硬盘删除文件,然后执行 `git commit -a` 会简单些。 它会自动将删除的文件从索引中移除。
> **简而言之**, 执行 `git rm` 来删除 Git 追踪的文件。它还会删除你的工作目录中的相应文件。