码迷,mamicode.com
首页 > 其他好文 > 详细

git命令——git rm、git mv

时间:2018-11-13 00:00:36      阅读:965      评论:0      收藏:0      [点我收藏+]

标签:参数   directory   需要   img   gif   size   跟踪   hid   斜杠   

git rm

git rm命令官方解释

删除的本质

在git中删除一个文件,本质上是从tracked files中移除对这些文件的跟踪。更具体地说,就是将这些文件从staging area移除。然后commit。

作用

git rm的作用就是将文件从暂存区删除

git rm的作用就是将文件从工作目录 和 暂存区 删除。

git rm并不能仅仅删除工作目录中的文件,而暂存区保持不变。目前git也没有提供任何参数支持这一功能。要想实现这一目标,只能使用Linux自带的/bin/rm命令

使用场景

彻底删除文件

所谓彻底删除文件,就是在工作目录和暂存区删除文件。由于gir rm不能直接删除工作目录中的文件,于是使用/bin/rm手动删除。此时执行git status 时就会在 “Changes not staged for commit”部分看到,表示没有被更改没有被暂存

技术分享图片
$ rm PROJECTS.md
$ git status
On branch master
Your branch is up-to-date with origin/master.
Changes not staged for commit:
    (use "git add/rm <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in workingdirectory)
        deleted: PROJECTS.md
no changes added to commit (use "git add" and/or "git commit -a")
View Code

然后再运行 git rm 将文件从暂存区移除

技术分享图片
$ git rm PROJECTS.md
rm PROJECTS.md
$ git status
On branch master
Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
        deleted: PROJECTS.md
View Code

下一次提交时,该文件就不再纳入版本管理了。 

现在假设这样一组场景,有文件file1.c,file2.c,file3.c。我把file1.c做了修改,并且git add到暂存区。这时候如果向上面那样手动/bin/rm删除file1.c,然后再git rm file1.c,这样没有任何问题。但是如果你跳过/bin/rm file1.c这一步,直接git rm file1.c是不被允许的,报错

技术分享图片
$ git rm file1.c 
error: the following file has changes staged in the index:
    file1.c 
(use --cached to keep the file, or -f to force removal)
View Code

必须要用强制删除选项 -f(即 force 的首字母)。 这是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被 Git 恢复。

只删除暂存区的文件

如果你想保留工作目录中的文件,但是删除对应暂存区中的文件。换句话说,你想让这些保存在磁盘上的文件不再被git跟踪。请使用--cached 选项。为啥会有这种奇怪的需求呢?假设这样一种场景,你忘记了添加.gitignore文件,不小心把很多本应忽略的文件加到了暂存区,这时候就需要这里介绍的做法了。

$ git rm --cached README

git rm 命令后面可以列出文件或者目录的名字,也可以使用 glob 模式。 比方说:

$ git rm log/\*.log

注意到星号 * 之前的反斜杠 \, 因为 Git 有它自己的文件模式扩展匹配方式,所以我们不用 shell 来帮忙展开。

此命令删除 log/ 目录下扩展名为 .log 的所有文件。 类似的比如:

$ git rm \*~

该命令为删除以 ~ 结尾的所有文件。

 

 

 

git命令——git rm、git mv

标签:参数   directory   需要   img   gif   size   跟踪   hid   斜杠   

原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9949426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!