目录
- 1、删除文件说明
- 2、删除文件操作
- (1)仅删除暂存区的文件
- (2)完全删除文件
- 3、本文用到的命令总结
若要是该文件未被Git管理,在工作区直接进行删除即可 。(不演示)
但是,若该文件已经经过多次
git add
与git commit
操作后,就必须要从已跟踪文件清单中删除(确切地说,是在暂存区中删除),然后提交 。可以用
git rm
命令完成此项工作 , 并连带从工作目录中删除指定的文件,这样文件之后就不会出现在未跟踪文件清单中了 。2、删除文件操作(1)仅删除暂存区的文件1)创建文件,提交到版本库
# 1.创建delete.html文件L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ echo "delete file test" >> delete.html# 2.把delete.html文件提交到本地版本库中L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git add delete.htmlwarning: LF will be replaced by CRLF in delete.html.The file will have its original line endings in your working directoryL@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git commit -m '新增delete.html文件'[master 262df2c] 新增delete.html文件 1 file changed, 1 insertion(+) create mode 100644 delete.htmlL@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git statusOn branch masternothing to commit, working tree clean
2)查看暂存区和本地版本库中的文件列表# 1.查看暂存区中的文件列表L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git ls-filesdelete.htmlreadme.txt# 2.查看本地版本库中的文件列表L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git ls-files --with-tree=HEADdelete.htmlreadme.txt
我们可以看到暂存区和本地版本库中都是delete.html
和readme.txt
两个文件 。说明命令:3)仅删除暂存区中git ls-files --with-tree=HEAD
该命令实际上查看的是,当前工作分支上 , HEAD指针所指向的,时间节点中的文件列表 。若查看上一个时间节点中的文件列表,则可将HEAD替换为HEAD^
,当然也可以使用HEAD~n
。
delete.html
文件使用
git rm --cached
命令 , 该命令可以仅删除暂存区中的指定文件 。L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git rm --cached delete.htmlrm 'delete.html'
4)再次查看暂存区和本地版本库中的文件列表# 1.查看暂存区中的文件列表$ git ls-filesreadme.txt# 2.查看本地版本库中的文件列表L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git ls-files --with-tree=HEADdelete.htmlreadme.txt
我们可以看到暂存区中已经没有了delete.html
文件 , 但本地版本库中还存在 。【『现学现忘』Git基础 — 35、Git中删除文件】此时 , 通过
git commit
命令进行提交,可以将本地库中的文件文件也删除 。5)恢复被删除
delete.html
文件此时工作区中的
delete.html
文件还没有被删除,如下:# 也可以使用ll命令查看L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git statusOn branch masterChanges to be committed:(use "git restore --staged <file>..." to unstage)deleted:delete.html # 已删除Untracked files:(use "git add <file>..." to include in what will be committed)delete.html # 未被追踪
此时最简单的恢复方式是,将delete.html
文件git add
到暂存区,再git commit
提交到本地版本库中 。(我的理解是 , 把delete.html
文件添加到暂存区,这一步就让delete.html
文件恢复了 , 因为此时工作区,暂存区 , 版本库中的delete.html
文件都是一样的 。在执行git commit
提交,也没有什么意思了 。大家可以自己也思考一下 。)下面我们使用
git reset
命令进行恢复 。执行命令
git reset HEAD
,即执行的完全命令为git reset --mixed HEAD
。# 1.版本回退L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git reset HEAD# 2.查看暂存区中的文件列表L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git ls-filesdelete.htmlreadme.txtL@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git statusOn branch masternothing to commit, working tree clean
可以看到暂存区中的
推荐阅读
- 『现学现忘』Git后悔药 — 34、git commit --amend 命令
- 二 『现学现忘』Git后悔药 — 33、revert撤销
- 一 『现学现忘』Git后悔药 — 32、revert撤销
- 男女互相暗恋的表现学生党 男女互相暗恋的表现
- 立夏的经典语录
- 男生在等你主动的表现学生 男生在等你主动的表现
- 『重大发现』京东白条套取方法
- 关于立夏的短句子
- 至上励合张远资料
- 双子座『谈恋爱』必须注意的事情不与前任作比较?