git rm

git rm命令用于从暂存区, 或从工作区和暂存区中删除文件; git rm无法只从工作区中删除文件而将其保留在暂存区中.

注解

默认情况下, git rmgit rm -f表示从工作区和暂存区中删除指定的文件; git rm --cached表示只从暂存区中删除指定的文件.

对于当前commit中已经存在, 且在工作区和暂存区中没有对之修改的文件:

  • 使用git rm在工作区和暂存区中删除指定的文件;
  • 使用git rm --cached只在暂存区中删除指定的文件.

对于当前commit中已存在, 但是在工作区或暂存区中有所修改的文件:

  • 使用git rm -f强制删除工作区和暂存区中的指定文件;
  • 使用git rm --cached只删除暂存区中的指定文件.

对于当前commit中没有的, 新添加的文件:

  • 因为git rm无法只从工作区中删除文件, 所以只在工作区中新添加的文件, 无法也不需要使用git rm删除, 使用rm即可;
  • 在工作区中新添加, 然后已经添加到暂存区中的新文件, 可以使用git rm -f强制从工作区和暂存区中删除, 还可以使用git rm --cached只从暂存区中删除.

注解

在git中我们可以通过git rm命令把一个文件删除, 并把它从git的版本库中移除. 但是注意最后要执行git commit才真正提交到git仓库.

rmgit rm

使用rm来删除文件, 仅仅是删除了物理文件, 没有将其从git的记录中剔除; 使用git rm来删除文件, 同时还会将这个删除操作记录下来.

例如, 要删除一个文件a.txt, 并将这个删除操作添加到暂存区并随后提交到版本库中:

git rm a.txt

如果使用rm指令的话:

rm a.txt
git add a.txt