Git 时光穿梭鸡 删除文件 以及批量删除文件
先添加一个新文件test.txt
到Git并且提交:
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm
命令删了
$ rm test.txt
这个时候,Git知道你删除了文件,
因此,工作区和版本库就不一致了,
git status
命令会立刻告诉你哪些文件被删除了:
现在你有的选择:
情况一 是确实要从版本库中删除该文件,那就用命令 git rm
删掉,
并且 git commit
:
现在,文件就从版本库中被删除了。
情况二 另一种情况是删错了,并且还没有add到暂存区
因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
只是在工作区删除了
可以使用git checkout 命令从 版本库 恢复
$ git checkout -- test.txt
( 恢复全部用 git checkout . )
情况三 删错了, 而且已经add到暂存区了, 但是还没有提交 想恢复
参考Git 时光穿梭鸡 撤销修改 中的工作区内容修改了, 并且已经add到暂存区了, 想回退到上一个版本
用命令git reset HEAD <file>
>>>>>>>>可以 把暂存区的修改撤销掉(unstage),并且 重新放回工作区:
git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。
当我们用HEAD
时,表示最新的版本。
git reset HEAD test.txt 回退单个文件
git reset HEAD 全部回退
再用git status
查看一下,现在暂存区是干净的,工作区有修改:
再使用 git checkout . 或 git checkout --test.txt
丢弃工作区的修改
现在工作区同版本库一致了
>>>>>>>>>>>补充 批量删除文件
>>>>如果你用的rm删除文件,那就相当于只删除了工作区的文件 想恢复,参考上面情况二
>>>>如果你用的是git rm删除文件,那就相当于不仅删除了文件,而且还添加到了暂存区
想恢复,参考上面情况三
新建目录 removeTest 并在其中新建两个文件
add 到暂存区
commit到版本库
批量删除方法一:(如果是删除当前文件夹下所有文件,方法一将删除该空文件夹一并删除,不会保留文件夹)
操作:(cd 到你要删除的目录下或者 * 可用“”文件夹名“”代替) -r 代表 recursively(递归)
$ git rm * -r $ git commit -m "clear"
$ git rm removeTest -r
查看一下状态
此时 removeTest下的文件 连同 该目录 都被删除了 此次删除发生在工作区 和 暂存区
( 如果想撤销此次删除 , 参考上面情况三)
commit提交此次删除 , 此时版本库中也删除了
(如果想撤销 , 见底部链接)
方法二:手动在文件管理器中删除批量文件,然后执行命令:(如果是删除当前文件夹下所有文件,方法二仍会保留该空文件夹)
$ git add . $ git commit -m "clear"
现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?
Git入门 时光穿梭鸡 版本回退 工作区 暂存区 参考其中的版本回退内容
Git 时光穿梭鸡 删除文件 以及批量删除文件的更多相关文章
- Git 时光穿梭鸡 撤销修改
工作区内容修改了, 但是并未add到暂存区, 想 回退到上一个版本 在readme.txt中添加了一行: Git is a distributed version control system. Gi ...
- Git 时光穿梭鸡 管理修改
Git跟踪并管理的是修改,而非文件. 什么是修改? 比如你新增了一行,这就是一个修改, 删除了一行,也是一个修改, 更改了某些字符,也是一个修改, 删了一些又加了一些,也是一个修改, 甚至创建一个新文 ...
- R8—批量生成文件夹,批量读取文件夹名称+R文件管理系统操作函数
一. 批量生成文件夹,批量读取文件夹名称 今日,工作中遇到这样一个问题:boss给我们提供了200多家公司的ID代码(如6007.7920等),需要根据这些ID号去搜索下载新闻,从而将下载到的新闻存到 ...
- Git入门 时光穿梭鸡 版本回退 工作区 暂存区
分布式集中式 CVS及SVN都是集中式的版本控制系统 , 而Git是分布式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的, 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得 ...
- iOS开发——UI进阶篇(四)tableView的全局刷新,局部刷新,左滑操作,左滑出现更多按钮,进入编辑模式,批量删除,自定义批量删除
首先创建项目,在storyboard如下布局控件,设置好约束 然后创建cell模型类XMGWineCell数据模型类XMGWine创建UITableView,设置数据源协议,实现数据源方法懒加载数据这 ...
- redis批量删除key 远程批量删除key
一.遇到的问题 在开发的过程中,经常会遇到要批量删除某种规则的key,如缓存的课程数据“course-课程uid”,其中课程uid是变量,我们需要删除"course-*"这一类的数 ...
- 第二课 ---git时光穿梭(版本回退)
1. git status 掌握仓库当前的状态. 2. git diff 查看修改的内容部分. //版本回退: 1.查看更新的历史记录. git log git log --pretty=o ...
- git批量删除文件和批量提交
1. 单个删除文件: ① 通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:(可选操作,可直接执行②删除) $ rm test.txt ② 确实要从版本库中删除该文件,那就用命令git rm ...
- php七牛批量删除空间内的所有文件方法
相信大家都在使用七牛的免费云存储服务的同时,有清空七牛云存储镜像文件或者批量删除七牛云空间文件的需求,该怎么做?官方的工具好像并没有提供批量删除的功能,七牛云官方给出的建议是删除空间,再新建一个这样太 ...
随机推荐
- python数据分析之Pandas:汇总和计算描述统计
pandas对象拥有一组常用的数学和统计方法,大部分都属于约简和汇总统计,用于从Series中提取单个的值,或者从DataFrame中的行或列中提取一个Series.相比Numpy而言,Numpy都是 ...
- Java for LeetCode 117 Populating Next Right Pointers in Each Node II
Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...
- 04-树7 二叉搜索树的操作集(30 point(s)) 【Tree】
04-树7 二叉搜索树的操作集(30 point(s)) 本题要求实现给定二叉搜索树的5种常用操作. 函数接口定义: BinTree Insert( BinTree BST, ElementType ...
- Java多线程系列 基础篇02 线程的创建和运行
1.线程创建的方式常用有两种 1. 继承 Thread 类创建线程 2. 实现 Runnable 接口创建线程 2.Thread 和 Runnable的区别 Thread和Runnable的相同点:都 ...
- BZOJ 4435 [Cerc2015]Juice Junctions 分治最小割+hash
分治最小割的题目,要求n2. 之前用的n3的方法自然不能用了. 于是用hash,设hash[i][j]表示在最小割为i的时候,j是否与S联通. 看懂这个需要理解一下最小割树的构造. 这种题建议用EK写 ...
- LightOJ - 1079 Just another Robbery —— 概率、背包
题目链接:https://vjudge.net/problem/LightOJ-1079 1079 - Just another Robbery PDF (English) Statistics ...
- js中得~~是什么意思/JS按位非(~)运算符与~~运算符的理解分析
其实是一种利用符号进行的类型转换,转换成数字类型 ~~true == 1 ~~false == 0 ~~"" == 0 ~~[] == 0 ~~undefined ==0 ~~!u ...
- 国画经典之梅花PSD素材
国画经典之梅花图片PSD素材,由huiyi8素材网提供. 地址:http://www.huiyi8.com/meihua/
- 我所理解的RESTful Web API [Web标准篇]【转】
原文:http://www.cnblogs.com/artech/p/restful-web-api-01.html REST不是一个标准,而是一种软件应用架构风格.基于SOAP的Web服务采用RPC ...
- longtable 跨越多个页面时,如何在跨页时自动断行并加上横线及去掉页眉
参考: http://users.sdsc.edu/~ssmallen/latex/longtable.html 一般的,在首行后面加上 \endfirsthead\hline\endhead\hli ...