当前位置:   article > 正文

git撤销已经add的文件 git删除已经add的文件 git移除已经add的文件 git rm --cache 和 git reset HEAD 的区别是什么 rm -rf 注意事项_git rm --cached

git rm --cached

引言

今天在ant design pro项目中,新建两个文件且已经git add了,但又想删除这两个文件,如下图所示:

在这里插入图片描述
那怎么处理呢?

解决问题

使用 git rm 命令即可,有两种选择:

git rm --cached 指令

使用如下指令删除:

git rm --cached "文件路径"
  • 1

这种方式,不删除物理文件,仅将该文件从缓存中删除。

比如我要删除src/utils/constants/ApiContant下的ApiContant.ts文件,可以执行如下命令:

git rm --cached src/utils/constants/ApiContant
  • 1

删除结果如下图所示:

在这里插入图片描述

ApiContant.ts文件在第一张图中是绿色的,表示已经在本地缓存文件中了。

但执行这个命令git rm --cached src/utils/constants/ApiContant后,ApiContant.ts文件由绿色变为红色,说明该文件已从缓存中移除了。

最后,在文件夹中删除ApiContant.ts文件即可,如下图所示:

在这里插入图片描述
说明ApiContant.ts文件已从物理地址中删除了。

还剩apiConstant.ts文件。当然,这个文件也要删除,但使用另一种方式删除。

git rm --f 指令

使用如下指令删除:

 git rm --f "文件路径"
  • 1

这种方式,不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。

比如我要删除src/utils/constants/apiConstant下的apiConstant.ts文件,可以执行如下命令:

git rm --f src/utils/constants/apiConstant
  • 1

删除结果如下图所示:

在这里插入图片描述

这种删除方式,存在一个问题,如果当前文件的父目下没有其他文件,就会删除真个父目录,如上图所示。

当前文件的父目下存在其他文件,只删除当前文件,如下所示:

在这里插入图片描述

执行命令git rm --f src/utils/constants/apiConstant.ts,删除apiConstant.ts文件,如下图所示:

在这里插入图片描述

补充git reset指令

这里的 “已经 add” 不等同于 “已经 commit”。

如果要撤销上一次提交的话,可以使用以下命令:

git reset --soft commit_id
  • 1

commit_id通过git log命令获取,复制上一次提交的commit_id,粘贴即可,如下所示:

在这里插入图片描述

git rm --cache 和 git reset HEAD 的区别

如果要删除文件,最好用 git rm file_name,而不应该直接在工作区直接 rm file_name

如果一个文件已经add到暂存区,还没有commit,此时如果不想要这个文件了,有两种方法:

  1. 用版本库内容清空暂存区:git reset HEAD

  2. 只把特定文件从暂存区删除:git rm --cached xxx

rm -rf指令的注意事项

创建目录:mkdir

创建文件:touch

linux 删除目录很简单,很多人还是习惯用 rm dir,不过一旦目录非空,就陷入深深的苦恼之中。

直接 rm 就可以了,不过要加两个参数 -rf 即:

rm -rf “目录名字”
  • 1
  • -r 就是向下递归,不管有多少级目录,一并删除

  • -f 就是直接强行删除,不作任何提示的意思

使用这个 rm -rf 的时候一定要格外小心,linux 没有回收站的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/425785
推荐阅读
相关标签
  

闽ICP备14008679号