当前位置: 首页 > article >正文

Git之误执行git rm -r解决方案(六十七)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者

新书发布:《Android系统多媒体进阶实战》🚀
优质专栏: Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏: 多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.git rm介绍
    • 🌻3.未提交更改前,撤销解决方案
      • 🐓3.1 方案一
      • 🐓3.2 方案二
    • 🌻4.提交更改后,撤销解决方案
      • 🐓4.1 方案一
      • 🐓4.2 方案二

🌻1.前言

本篇目的:在git操作中,误使用git rm -r后,该如何恢复?

🌻2.git rm介绍

  • Git是一个功能强大的版本控制系统,广泛应用于各类软件开发项目中。在Git的使用过程中,我们经常需要对文件进行管理,包括添加、删除、修改等操作。今天,我们来详细介绍git rm -r命令的作用。
  • git rm -r命令是Git中用于删除文件或目录的命令。其中,rm是“remove”的缩写,表示删除;-r是递归删除的选项,表示不仅删除指定目录下的文件,还会删除该目录下的所有子目录及其中的文件。
    具体来说,git rm -r命令的作用如下:
  1. 删除指定文件或目录:当我们需要从Git仓库中删除某个文件或目录时,可以使用git rm -r命令。例如,要删除名为“example.txt”的文件,可以使用git rm -r example.txt
  2. 删除所有子目录及其文件:当我们需要删除一个包含多个子目录的目录时,-r选项会递归删除该目录下的所有子目录及其中的文件。例如,要删除名为“dir”的目录及其所有子目录和文件,可以使用git rm -r dir
  3. 提交删除操作:使用git rm -r命令删除文件或目录后,需要执行git commit命令提交删除操作,才能真正从Git仓库中删除这些文件。例如,提交删除操作的命令为git commit -m "删除了example.txt文件"
  4. 支持通配符:git rm -r命令支持通配符,可以一次性删除多个符合条件的文件或目录。例如,要删除所有以“.txt”结尾的文件,可以使用git rm -r *.txt
  5. 与分支和远程仓库交互:在使用git rm -r命令删除文件或目录后,如果需要将这些更改同步到其他分支或远程仓库,可以使用git push命令。
    需要注意的是,使用git rm -r命令删除文件或目录时,有以下几点需要注意:
  6. 删除操作不可逆:一旦执行git rm -r命令并提交删除操作,被删除的文件或目录将无法恢复。因此,在执行删除操作前,请务必确认是否真的需要删除这些文件。
  7. 慎用通配符:在使用通配符删除文件时,请确保符合通配符条件的文件都是需要删除的。否则,可能会误删重要文件。
  8. 删除空目录:如果要删除一个空目录,可以不使用-r选项,直接使用git rm命令。

🌻3.未提交更改前,撤销解决方案

🐓3.1 方案一

  • 使用 git reset 命令来撤销所有的更改
# git reset --hard

🐓3.2 方案二

  • 恢复所有删除的文件
# git checkout .

🌻4.提交更改后,撤销解决方案

🐓4.1 方案一

  • 使用 git revert 命令来创建一个新的提交,这个提交会撤销之前的删除操作
# git revert <commit_hash>

🐓4.2 方案二

  • 想要完全撤销提交(不仅仅是撤销删除操作),可以使用 git reset 命令,但这通常涉及到更复杂的变基操作
# git reset --hard <commit_hash>

http://www.kler.cn/a/312873.html

相关文章:

  • Fastapi使用MongoDB作为数据库
  • Spring MVC 与 JSP 数据传输
  • 阿里巴巴通义灵码推出Lingma SWE-GPT:开源模型的性能新标杆
  • 以色列支付龙头遭DDoS攻击,各地超市加油站等POS机瘫痪
  • 使用jmeter查询项目数据库信息,保存至本地txt或excel文件1108
  • 《情商》提升:增强自我意识,学会与情绪共处
  • 开源模型应用落地-Qwen2.5-7B-Instruct与vllm实现推理加速的正确姿势(一)
  • uniapp+renderJS+google map开发安卓版APP非小程序
  • 新通话,新突破!菊风荣获第七届“绽放杯”5G消息与新通话专题赛二等奖!
  • C++可变参数模板
  • 尚硅谷javaweb笔记
  • c++的decltype关键字
  • Go进阶概览 -【第6章 Go程序的性能优化与调优】
  • CertiK因发现Apple Vision Pro眼动追踪技术漏洞,第6次获苹果认可
  • ego-planner开源代码之启动参数介绍分析
  • 9.20-使用k8s部署wordpress项目
  • FewShotChatMessagePromptTemplate 和 FewShotPromptTemplate区别
  • 如何限制任何爬虫爬取网站的图片
  • VScode相关问题与解决
  • C#笔记14 异步编程Async,await,task类
  • Java语言程序设计基础篇_编程练习题***18.32 (游戏:骑士的旅途)
  • 排序---冒泡排序、堆排序
  • etcd三节点,其中一个坏掉了的恢复办法
  • Codeforces Round 973 (Div. 2) F1. Game in Tree (Easy Version)(思维题 博弈)
  • 以更高分辨率和体内方式了解 lncRNA 的生物发生和功能
  • neo4j(spring) 使用示例