在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:
$ git add test.txt
$ git commit -m "add test.txt"
[master 94cdc44] add test.txt
1 file changed, 1 insertion(+)
create mode 100644 test.txt
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm
命令删了:
$ rm test.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status
命令会立刻告诉你哪些文件被删除了:
$ 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: test.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm
删掉,并且git commit
:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d17efd8] remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
现在,文件就从版本库中被删除了。
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
小结
命令git rm
用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
相关推荐
`git status`用于查看当前工作目录和暂存区的状态,了解哪些文件被修改、新增或删除。 10. **撤销更改(Revert Changes)**: 如果需要撤销未提交的更改,可使用`git reset --hard HEAD`;若要回退到某个提交,如...
- 删除文件后如何从暂存区恢复。 - **分支管理**: - 创建、合并、切换分支。 - 解决合并时产生的冲突。 - 使用`git merge`和`git rebase`进行分支合并。 - **Git的数据管理机制**: - 基于SHA1哈希算法对文件...
学习Git和Github,通常需要掌握以下知识点: 1. Git基础配置:用户在使用Git之前,需要进行全局配置,这包括设置用户名和电子邮件地址。这些信息会被记录在每次提交中。例如,可以通过命令`git config --global ...
Git工作流程中通常会涉及到版本库与文件操作,包括创建版本库、添加文件到仓库、查看仓库状态、提交修改、版本回退、撤销修改、删除文件等。创建版本库是在一个文件夹下执行git init命令,该命令会创建一个隐藏的....
本压缩包文件“czbk公开课笔记git 两小时学会Git玩转Github.zip”包含了一份详细的Git学习指南,旨在帮助用户在短时间内掌握Git的基本操作,并能熟练运用Git与GitHub进行项目管理和协作。 Git是一个强大的工具,它...
至于"anhtuanpcipho-SQL_ver1"这个文件名,可能是某个与SQL相关的项目或者版本,这可能是一个数据库查询、学习笔记或者是某种SQL工具的配置。SQL(Structured Query Language)是用于管理关系数据库的标准语言,涵盖...
这份“Python学习笔记”压缩包文件包含了一份详细的学习资源,旨在帮助初学者或有一定基础的学习者深入理解Python语言的核心概念和技术。 在Python的世界里,我们首先会接触到基础语法,如变量、数据类型(包括整型...
为了有效管理这些文件,GitHub开发了LFS,并将它作为插件来使用。 LFS将大文件存储在一个HTTP服务器上,该服务器支持创建、读取、更新、删除(CRUD)API操作。在Git仓库中,大文件被替换为指针文件,指针文件包含了...
### Git学习笔记——入门篇 #### 一、Git简介与安装 **Git**是一种分布式版本控制系统,用于跟踪计算机文件的变化,并协调多个用户之间的共享工作。它最初由Linus Torvalds于2005年创建,目的是为了更高效地管理...
标题 "mygithub-cx.github.io:这是我的学习笔记" 暗示这是一份个人学习资源的集合,可能是一个GitHub Pages站点的源代码,作者分享了他们在编程领域的知识,特别是围绕Python、Java、Linux和MySQL的学习笔记。...
**我的SVN学习笔记(原创)** 在信息技术领域,版本控制系统是不可或缺的工具之一,它帮助开发者跟踪和管理代码的变化,使得多人协作变得有序而高效。Subversion(简称SVN)就是这样的一个开源版本控制系统,它允许...
Github 学习笔记 汇总一下经常用的的commands,省了每次都去stack overflow了 # 笔记 Description Git,github 等等 1 不仅仅是readme,是所有.md文件 2 1. 删除已经push的commits 2.删除没有push的commits(TODO) ...
### Git学习笔记 #### 一、版本控制系统概览 **版本控制系统**是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。根据存储方式的不同,版本控制系统可以分为两大类: 1. **集中式版本...
4. 分支管理:`git branch`用于列出、创建或删除分支,`git checkout`切换分支或恢复工作目录文件,`git merge`用于合并分支。 5. 远程操作:`git remote add`关联远程仓库,`git push`将本地更改推送到远程仓库,`...
ElasticSearch学习笔记1 ElasticSearch 简介 ElasticSearch 是基于 Apache Lucene 构建的搜索引擎,使用 Java 编写,提供简单易用的 Restful API,容易横向扩展,支持 PB 级的结构化与非结构化数据处理。Elastic...
【Mybatis基础入门学习笔记】 Mybatis是一款广泛使用的Java持久层框架,它的主要目标是简化对数据库的操作,提供更加灵活的SQL映射机制。Mybatis起源于Apache组织的ibatis框架,历经发展,在2010年迁移到Google ...