git 入门教程之删除文件
删除文件
回忆一下文件的常见操作,新增文件,修改文件,删除文件等,新增和修改文件都单独讨论过,现在我们来研究一下如何删除文件.
你可能会说删除文件还不简单啊,直接 rm -rf <file> 即可,但是这仅仅是本地文件被删除了,对于 git 来说,文件并没有被删除.
还记得我们开篇介绍git 时就说过,一切操作皆版本 ,对于新增是一个版本,修改也是一个版本,就连删除都是一个版本.
下面让我们看一下 git 中如何删除文件吧!
背景
# 查看当前文件列表
$ ls
file1.txt   file2.txt   file3.txt   newFile.txt test.txt
# 新建待删除文件
$ touch delete.txt
# 再次查看当前文件列表,确保新建文件成功
$ ls
delete.txt  file2.txt   newFile.txt
file1.txt   file3.txt   test.txt
# 查看当前文件状态: 新文件 `delete.txt` 还没被跟踪
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .DS_Store
    delete.txt
nothing added to commit but untracked files present (use "git add" to track)
# 添加新文件 `delete.txt`
$ git add delete.txt
# 查看文件状态: 已添加到暂存区,待提交到版本库
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
    new file:   delete.txt
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .DS_Store
# 提交新文件 `delete.txt`
$ git commit -m "add delete.txt"
[master 7df386a] add delete.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 delete.txt
# 再次查看文件状态: 已经没有新文件 `delete.txt` 的更改信息
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .DS_Store
nothing added to commit but untracked files present (use "git add" to track)
$
以上操作,我们简单创建 delete.txt 文件,添加(git add)并提交(git commit) 该文件,完成准备工作后,开始删除文件!
# 删除前文件列表
$ ls
delete.txt  file2.txt   newFile.txt
file1.txt   file3.txt   test.txt
# 删除刚刚创建的文件 `delete.txt`
$ rm delete.txt
# 删除后文件列表
$ ls
file1.txt   file2.txt   file3.txt   newFile.txt test.txt
# 当前文件状态: `delete.txt` 文件已被删除,且未添加到暂存区
$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
    deleted:    delete.txt
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .DS_Store
no changes added to commit (use "git add" and/or "git commit -a")
$
本地删除 delete.txt 文件后,再次查看文件状态 git status 发现 git 给了我们两条建议,其中一条 git checkout -- <file> 我们很熟悉,就是丢弃工作区的更改,此时此景下如果丢弃删除操作,相当于撤销删除,难怪说删除也是一个版本呢!
现在我们重点来看第一条建议 git add/rm <file> ,rm 是 remove 单词的缩写,即删除文件.
# 删除文件
$ git rm delete.txt
rm 'delete.txt'
# 查看文件状态: `delete.txt` 文件待提交
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
    deleted:    delete.txt
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .DS_Store
# 提交文件
$ git commit -m "remove delete.txt"
[master 6298070] remove delete.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 delete.txt
# 再次查看文件状态
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .DS_Store
nothing added to commit but untracked files present (use "git add" to track)
$
删除文件和添加文件类似,都是一次commit ,本地文件的任何更改都要添加到暂存区,然后提交到版本库.
小结
删除文件和新增文件类似逻辑,git rm 删除文件后,依然需要 git commit 提交版本.
git 入门教程之删除文件的更多相关文章
- Git 基础教程 之 删除文件
		① 手动或命令 rm删除工作区的问价: git checkout -- readme.txt 可恢复 checkout 实际上是用版本库里的替换工作区的版本 ② 删除了工作区文 ... 
- git 入门教程之忽略文件
		忽略文件 "并不是所有的牛奶都叫特仑苏",在版本控制系统中也有相似的表达,那就是"并不是所有的文件都需要提交". 有的是因为没必要提交,比如日志文件,系统缓存文 ... 
- git 入门教程
		git 入门教程之协同开发 前面我们已经介绍过远程仓库的相关概念,不过那时并没有深入探讨,只是讲解了如何创建远程仓库以及推送最新工作成果到远程仓库,实际上远程仓库对于团队协同开发很重要,不仅仅是团队协 ... 
- 廖雪峰Git入门教程
		廖雪峰Git入门教程 2018-05-24 23:05:11 0 0 0 https://www.liaoxuefeng.com/wiki/00137395163059296 ... 
- git 常用命令(含删除文件)
		git 常用命令(含删除文件) Git常用操作命令收集: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库: ... 
- 史上最简单Git入门教程
		一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 工作原理 / 流程: Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remo ... 
- Git教程之删除文件(8)
		在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: 
- git教程:删除文件
		在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ... 
- Git入门教程,详解Git文件的四大状态
		大家好,欢迎来到周一git专题. git clone 在上一篇文章当中我们聊了怎么在github当中创建一个属于自己的项目(repository),简称repo.除了建立自己的repo之外,我们更多的 ... 
随机推荐
- Android greenDAO 数据库 简单学习之基本使用
			看网上对greenDAO介绍的不错,今天就动手来试一把,看看好不好使. greenDAO 官方网站:http://greendao-orm.com/ 代码托管地址:https://github.com ... 
- CentOS7配置iptables防火墙
			CentOS 7中默认是firewalld防火墙,如果使用iptables需要先关闭firewalld防火墙(1.关闭防火墙,2.取消开机启动). #关闭firewalld systemctl sto ... 
- Entity Framework入门教程(6)--- 在线场景中保存数据
			在线场景中保存数据 在线场景中保存实体数据是一项相当容易的任务,因为使用的是同一个context,这个context会自动跟踪所有实体发生的更改. 下图说明了在线场景中的CUD(创建,更新,删除)操作 ... 
- [物理学与PDEs]第5章第3节 守恒定律, 应力张量
			5. 3 守恒定律, 应力张量 5. 3. 1 质量守恒定律 $$\bex \cfrac{\p \rho}{\p t}+\Div_y(\rho{\bf v})=0. \eex$$ 5. 3. 2 应 ... 
- 乘积型Sobolev不等式
			(Multiplicative Sobolev inequality). Let $\mu,\lambda$ and $\gamma$ be three parameters that satisfy ... 
- react中键盘enter事件处理
			对于常见的搜索需求业务场景,用户输入完成后,点击enter事件请求数据,要求不提交页面,实现数据局部更新,这需要用到react中的表单Forms. 处理方法: (1)html书写 form标签中去掉a ... 
- error: no matching function for call to 'std::exception:exception(const char[16])'
			环境:codeblocks 语言:C++ 在执行:throw new exception("queue is empty.");时 遇到问题:error: no matching ... 
- DeepLearning.ai学习笔记(五)序列模型 -- week2 序列模型和注意力机制
			一.基础模型 假设要翻译下面这句话: "简将要在9月访问中国" 正确的翻译结果应该是: "Jane is visiting China in September" ... 
- 「luogu1417」烹调方案
			题目链接 :https://www.luogu.org/problemnew/show/P1417 直接背包 -> 30' 考虑直接背包的问题:在DP时第i种食材比第j种食材更优,但由于j&l ... 
- Python爬虫基础之认识爬虫
			一.前言 爬虫Spider什么的,老早就听别人说过,感觉挺高大上的东西,爬网页,爬链接~~~dos黑屏的数据刷刷刷不断地往上冒,看着就爽,漂亮的校花照片,音乐网站的歌曲,笑话.段子应有尽有,全部都过来 ... 
