- Git基础概念
- Git历史(简史)
- Git基础和原理
- Git安装设置
- Git使用前配置
- Git快速入门
- Git工作流程
- Git创建存储库
- Git克隆操作
- Git执行变更操作
- Git查看更改
- Git提交更改
- Git推送(push)操作
- Git更新操作
- Git隐藏(Stash)操作
- Git移动操作
- Git重命名操作
- Git删除操作
- Git修正错误
- Git标签操作
- Git补丁操作
- Git管理分支
- Git处理冲突
- Git不同平台换行符问题
- Git远程操作详解
-
Git常用命令
- git config命令
- git help命令
- git init命令
- git add命令
- git clone命令
- git status命令
- git diff命令
- git commit命令
- git reset命令
- git rm命令
- git mv命令
- git branch命令
- git checkout命令
- git merge命令
- git mergetool命令
- git log命令
- git stash命令
- git tag命令
- git fetch命令
- git pull命令
- git push命令
- git remote命令
- git submodule命令
- git show命令
- git shortlog命令
- git describe命令
- git rebase命令
git rm命令
git rm
命令用于从工作区和索引中删除文件。
简介
git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…
描述
从索引中删除文件,或从工作树和索引中删除文件。 git rm
不会从您的工作目录中删除文件。 (没有任何选项只能从工作树中删除文件,并将其保留在索引中;)要删除的文件必须与分支的提示相同,并且在索引中不能对其内容进行更新,尽管可以使用-f
选项覆盖(默认行为)。 当给出--cached
时,暂存区内容必须与分支的提示或磁盘上的文件相匹配,从而仅将文件从索引中删除。
使用 git rm
来删除文件,同时还会将这个删除操作记录下来;而使用 rm
来删除文件,仅仅是删除了物理文件,没有将其从 git
的记录中剔除。
直观的来讲,git rm
删除过的文件,执行 git commit -m "commit message or mark"
提交时,会自动将删除该文件的操作提交上去。
而对于用 rm
命令直接删除的文件,执行 git commit -m "commit message or mark"
提交时,则不会将删除该文件的操作提交上去。不过不要紧,即使你已经通过 rm
将某个文件删除掉了,也可以再通过 git rm
命令重新将该文件从 git 的记录中删除掉,
这样的话,在执行 git commit -m "commit message or mark"
以后,也能将这个删除操作提交上去。
如果之前不小心用 rm
命令删除了一大批文件呢?如此时用 git rm
逐个地再删除一次就显得相当卵痛了。可如下的方式做提交: git commit -am "commit message or mark"
示例
以下是一些示例 -
在git中我们可以通过git rm
命令把一个文件删除,并把它从git的仓库管理系统中移除。但是注意最后要执行git commit
才真正提交到git仓库。
示例1
删除text1.txt
文件,并把它从git的仓库管理系统中移除。
git rm text1.txt
示例2
删除文件夹:mydir
,并把它从git的仓库管理系统中移除。
git rm -r mydir
示例3
$ git add 10.txt $ git add -i staged unstaged path 1: +0/-0 nothing 10.txt 2: +0/-0 nothing branch/t.txt 3: +0/-0 nothing branch/t2.txt *** Commands *** 1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked 5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp What now> 7 Bye. $ git rm --cached 10.txt rm '10.txt' $ ls 10.txt 2 3.txt 5.txt readme.txt $ git add -i staged unstaged path 1: +0/-0 nothing branch/t.txt 2: +0/-0 nothing branch/t2.txt *** Commands *** 1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked 5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
在通过 git add 10.txt
命令把文件10.txt
添加到索引库中后,又通过 git rm --cached 10.txt
把文件10.txt
从git的索引库中移除,但是对文件10.txt
本身并不进行任何操作。
另外对于已经被git rm
删除掉(还没被提交)的文件或目录,如果想取消其操作的话,可以首先通过git add -i
的子命令revert
从索引库中把它们剔除,然后用git checkout <文件>
命令来达到取消的目。
示例4
$ git rm Documentation/\*.txt
从Documentation
目录及其任何子目录下的索引中删除所有.txt
文件。
示例5
git rm -f git-*.sh
因为这个例子让shell扩展星号(即显式列出文件),它不会删除子目录中的文件,如:subdir/git-foo.sh
文件不会被删除。
上一篇:git reset命令
下一篇:git mv命令