一文读懂Git删除文件操作

Git 各场景下的文件删除

  • 1. 已修改,未暂存,未提交:第一次创建
  • 2. 已修改,已暂存,未提交:准备第一次提交
  • 3. 已修改,已暂存,已提交,未修改:第一次提交
  • 4. 多次提交,已修改/已暂存:已有记录,有新修改

起初,我还没理解 Git “ 一般只添加数据” 的设计思想,直到深入学习Git的文件删除并实践后,才摸着一些门道,特此记录。

1. 已修改,未暂存,未提交:第一次创建

在这里插入图片描述
对应Git中的操作如下:
在这里插入图片描述
即Untracked files。这类文件由于没有被Git跟踪,所以直接命令行rm或文件夹手动删除即可。正因为没有被Git跟踪,如果使用git rm,就会报错:fatal: pathspec ‘test’ did not match any files
在这里插入图片描述

2. 已修改,已暂存,未提交:准备第一次提交

在这里插入图片描述
对应Git中的操作如下:
在这里插入图片描述
即Changes to be committed,即将提交。此时如果rm:
在这里插入图片描述
看起来没什么问题,但status显示还是有新文件test待提交,说明test只是在当前工作目录下不可见,无法再修改,但还在暂存区。下面的commit也验证了这一点
在这里插入图片描述
此时的test,已经进入到了暂存区,但又并未被Git所跟踪。对于这类文件,Git给予了高度重视,因为一旦删除它,就意味着后面再也无法通过查看历史提交记录来恢复。所以如果一定要删除,必须加上强制删除选项 -f,用于防止误删还没有提交过的数据。即git rm -f
在这里插入图片描述

3. 已修改,已暂存,已提交,未修改:第一次提交

在这里插入图片描述
对应Git中的操作如下:
在这里插入图片描述
由于test1刚被提交,所以Git已经有了跟踪记录。由于提交后还未修改,所以只需要执行git rm,即可删除。这里所谓的删除,指的是下次提交的版本中,没有test1文件了,想要找回test1,还是可以通过历史提交记录找回的。看到这里,想必可以理解Git “一般只添加数据” 的设计思想了doge。
在这里插入图片描述

4. 多次提交,已修改/已暂存:已有记录,有新修改

在这里插入图片描述
这是最后一种场景,与场景三不同的是,这里有新的修改,意味着:虽然仓库已有记录,但很可能需要更新。所以Git也给予了一定程度的重视,对于这类文件的删除,有两种方案:

  1. 先执行rm,后执行git rm
  2. 直接执行git rm -f

多次提交,已修改,先执行rm,后执行git rm 为例:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部