阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

简单介绍Git基础学习之文件删除操作命令

303次阅读
没有评论

共计 4074 个字符,预计需要花费 11 分钟才能阅读完成。

导读 这篇文章主要为大家详细介绍了 Git 基础学习中的文件删除操作命令,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
1、删除文件说明

在 Git 工作目录中要删除某个文件,首先要清楚该文件所处的状态。

若要是该文件未被 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.html
warning: LF will be replaced by CRLF in delete.html.
The file will have its original line endings in your working directory
 
L@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.html
  
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean

2)查看暂存区和本地版本库中的文件列表

# 1. 查看暂存区中的文件列表
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git ls-files
delete.html
readme.txt
 
# 2. 查看本地版本库中的文件列表
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git ls-files --with-tree=HEAD
delete.html
readme.txt

我们可以看到暂存区和本地版本库中都是 delete.html 和 readme.txt 两个文件。

说明命令:git ls-files –with-tree=HEAD

该命令实际上查看的是,当前工作分支上,HEAD 指针所指向的,时间节点中的文件列表。若查看上一个时间节点中的文件列表,则可将 HEAD 替换为 HEAD^,当然也可以使用 HEAD~n。

3)仅删除暂存区中 delete.html 文件

使用 git rm –cached 命令,该命令可以仅删除暂存区中的指定文件。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git rm --cached delete.html
rm 'delete.html'

4)再次查看暂存区和本地版本库中的文件列表

# 1. 查看暂存区中的文件列表
$ git ls-files
readme.txt
 
# 2. 查看本地版本库中的文件列表
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git ls-files --with-tree=HEAD
delete.html
readme.txt

我们可以看到暂存区中已经没有了 delete.html 文件,但本地版本库中还存在。

此时,通过 git commit 命令进行提交,可以将本地库中的文件文件也删除。

5)恢复被删除 delete.html 文件

此时工作区中的 delete.html 文件还没有被删除,如下:

# 也可以使用 ll 命令查看
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged ..." to unstage)
        deleted:    delete.html # 已删除
 
Untracked files:
  (use "git add ..." 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-files
delete.html
readme.txt
 
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean

可以看到暂存区中的 delete.html 文件已恢复。

(2)完全删除文件

所谓完全删除文件,指的是将工作区、暂存区和本地库中的指定文件一次性都删除。

1)删除 delete.html 文件

使用命令 git rm filename。

# 接上面示例
# 1. 完全删除 delete.html 文件
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git rm delete.html
rm 'delete.html'
 
# 2. 查看暂存区中的文件列表
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git ls-files
readme.txt
 
# 3. 查看本地版本库中的文件列表
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git ls-files --with-tree=HEAD
delete.html
readme.txt
 
# 4. 查看工作区中的文件列表
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ ll
total 1
-rw-r--r-- 1 L 197121 80  4 月 15 17:34 readme.txt
 
# 5. 查看工作目录中的文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged ..." to unstage)
        deleted:    delete.html

我们可以工作区和暂存区中的 delete.html 文件都已经被删除,但是本地版本库中的 delete.html 文件还存在。

我们查看了当前工作目录中的文件状态,发现 delete.html 文件是已删除状态。

因此若要将本地版本库中的 delete.html 文件删除,直接 commit 提交即可。

# 提交操作
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit -m '删除 delete.html 文件'
[master fdcb771] 删除 delete.html 文件
 1 file changed, 1 deletion(-)
 delete mode 100644 delete.html
 
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean
 
# 查看工作目录文件
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ ll
total 1
-rw-r--r-- 1 L 197121 80  4 月 15 17:34 readme.txt

说明 delete.html 文件已经被彻底删除了。

3、本文用到的命令总结
  • git ls-files:查看暂存区中的文件列表。
  • git ls-files –with-tree=HEAD:查看本地版本库中的文件列表。(文中有使用说明)
  • git rm –cached filename:仅删除暂存区中的文件。
  • git rm filename:删除工作区和暂存区的文件。
  • 阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

    腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

    代金券:在阿里云专用满减优惠券

    正文完
    星哥玩云-微信公众号
    post-qrcode
     0
    星锅
    版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计4074字。
    转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
    【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
    阿里云-最新活动爆款每日限量供应
    评论(没有评论)
    验证码
    【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

    星哥玩云

    星哥玩云
    星哥玩云
    分享互联网知识
    用户数
    4
    文章数
    19354
    评论数
    4
    阅读量
    8228214
    文章搜索
    热门文章
    星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

    星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

    星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
    星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

    星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

    星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
    再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

    再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

    再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
    飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

    飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

    飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
    星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

    星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

    星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
    阿里云CDN
    阿里云CDN-提高用户访问的响应速度和成功率
    随机文章
    支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

    支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

    支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
    开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

    开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

      开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
    免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

    免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

      免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
    手把手教你,购买云服务器并且安装宝塔面板

    手把手教你,购买云服务器并且安装宝塔面板

    手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
    零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

    零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

    零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...

    免费图片视频管理工具让灵感库告别混乱

    一言一句话
    -「
    手气不错
    如何安装2026年最强个人助理ClawdBot、完整安装教程

    如何安装2026年最强个人助理ClawdBot、完整安装教程

    如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
    把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

    把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

    把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
    300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

    300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

      300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
    多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

    多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

    多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
    星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

    星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

    星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...