git撤销已经add的文件 git删除已经add的文件

原文地址:https://blog.csdn.net/lvoelife/article/details/126222976

引言

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

那怎么处理呢?

解决问题

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

git rm --cached 指令

使用如下指令删除:

git rm --cached "文件路径"

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

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

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

删除结果如下图所示:

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

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

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

说明ApiContant.ts文件已从物理地址中删除了。

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

git rm --f 指令

使用如下指令删除:

git rm --f "文件路径"

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

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

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

删除结果如下图所示:

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

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

执行命令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,此时如果不想要这个文件了,有两种方法:

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

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

rm -rf指令的注意事项

创建目录:mkdir

创建文件:touch

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

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

rm -rf “目录名字”

-r 就是向下递归,不管有多少级目录,一并删除

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值