git rm

git rm可以执行删除的条件(前提是要被删除的文件还没有从workspace tree中移除)

git rm可以执行删除的条件:被删除文件在index当中的blob内容必须与HEAD commit指向的blob内容以及workspace tree中的文件内容一致,换句话说即当运行git status时,被删除的文件不能出现在git status的输出当中。

git rm --cached可以执行删除的条件:被删除的文件在index当中的blob内容与HEAD commit指向的blob内容一致,或者index当中的blob内容与workspace tree中的文件内容一致,换句话说即当运行git status时,被删除的文件不能同时出现在Changes to be committed和Changed but not updated当中。

从index当中删除已经不再worksapce tree当中的文件

如果没有使用git rm删除,而是直接使用rm删除文件,那么,该文件只是从workspace tree当中被删除了,而没有从index当中删除,这时的解决办法有5个:

1) 执行git rm --cached 或者git rm命令;

2) 执行git commit -a命令;

3)执行git add -u;

4)执行git add -A命令;

5)执行git commit -m msg;

git glob的扩展

glob在git中有两种扩展方式,一种是使用shell的扩展方式,另一种是git自己扩展,比如有下面的文件结构

d

|

-----------------------

|                               |

hello.txt                     dd

|

hello.txt

此时git rm d/*.txt只会删除d/hello.txt,而不会同时删除d/dd/hello.txt,因为此时glob进行的是shell扩展,而shell 扩展不会匹配/;如果使用git rm d/\*.txt,则会同时删除d/hello.txt, d/dd/hello.txt,由于在*前面加入了\字符,此时进行的是git扩展,git扩展可以匹配/。

但是这里有一个疑问就是如果使用git rm *.txt或者git rm d*.txt,即使在*前面没有加入\,d/hello.txt和d/dd/hello.txt都会被删除

时间: 2024-11-02 09:47:58

git rm的相关文章

git rm使用

git rm file将文件从缓存区和你的硬盘中(工作目录)删除 git rm demo1.txt 命令行输出 git rm --cached file在工作目录中留着该文件 git rm --cached hello.php 命令行输出

git rm And git rm --cached And git reset HEAD

git rm git rm 会将条目从缓存区中移除.这与 git reset HEAD 将条目取消缓存是有区别的. "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子. 默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除. 如果你要在工作目录中留着该文件,可以使用 git rm --cached: 如我们删除 hello.php文件: git rm hello.php 当前的工作目录和 本地的缓存区都不会有hello.php文件了.

"git rm" 和 "rm" 的区别

"git rm" 和 "rm" 的区别 FEB 3RD, 2013 | COMMENTS 这是一个比较肤浅的问题,但对于 git 初学者来说,还是有必要提一下的. 用 git rm 来删除文件,同时还会将这个删除操作记录下来:用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除. 直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时,会自动将删除该文件的操作提交上去. 而对于用 rm

三十四、git rm简介

本文翻译整理自:http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-rm.html 在git中我们可以通过git rm命令把一个文件删除,并把它从git的仓库管理系统中移除.但是注意最后要执行git commit才真正提交到git仓库 示例1 git rm 1.txt 删除1.txt文件,并把它从git的仓库管理系统中移除. 示例2 git rm -r myFolder 删除文件夹myFold

git rm–r folder fatal:pathspec "" did not match any files

问题描述: 某年某月某日,在查看git库的时候,发现文件的分布和文件夹的名字是极其不合理的,所以移动和重命名了某些文件. 在删除(git rm –r folder)一个空文件夹的时候,出现错误:fatal:pathspec "folder Name" did not match any files,就是说,git没有找到相应的文件.但是这个文件夹明明是存在的,刚把里面的文件移到其他的文件夹里面,此时这个文件夹是空的. 问题推测: 某人喜欢推测,知道这是个不好的习惯,但木有办法.在现有的

"git rm" 和 "rm" 的区别(转载)

转自:http://yang3wei.github.io/blog/2013/02/03/git-rm-he-rm-de-qu-bie/ 这是一个比较肤浅的问题,但对于 git 初学者来说,还是有必要提一下的. 用 git rm 来删除文件,同时还会将这个删除操作记录下来:    用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除. 直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时,会自动将删除该文件的操作提交上去.

对比git rm和rm的使用区别

在这里说一下git rm和rm的区别,虽然觉得这个问题有点肤浅,但对于刚接触git不久的朋友来说还是有必要的. 用 git rm 来删除文件,同时还会将这个删除操作记录下来:用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除. 直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时,会自动将删除该文件的操作提交上去. 而用 rm 命令直接删除的文件,单纯执行 git commit -m "abc" 提交

git学习-git status, git diff, git rm, git mv等文件操作命令解释。

直接说每条命令了 git status是显示当前文件所处于的状态. ? /Users/alps/Sites/judianer/1 git:(master)>git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean 这个是干净的情况,就是全部push都提交了,没有改动过的文件. ? /Users/alps/Sites/j

[转] git rm与git rm --cached

当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用 git rm file_path 当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用 git rm --cached file_path file_path 为文件路径 作者:殷临风链接:https://www.jianshu.com/p/337aeafc2f40來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 原文地址:https://w