rm, mv

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 追踪的文件。它还会删除你的工作目录中的相应文件。

文章导航