【Git】一文带你入门Git分布式版本控制系统(撤销修改、删除文件)

简介: 【Git】一文带你入门Git分布式版本控制系统(撤销修改、删除文件)

一、撤销修改

1、写错内容但还在工作区

在我们修改了内容后,发现了错误或不妥之处时,我们可以进行撤销修改


0e9095591eee4f798f2586d473f4ad80.png

在我们提交之前,先查看一下当前状态,还好处于工作区

3fecef1f59ac456aaba9246ded6b024e.png

2、撤销工作区的修改

我们可以使用刚刚的提示命令,进行丢弃工作区的修改

// 把 readme.txt 文件在工作区的修改全部撤销
git checkout -- readme.txt

注意:撤销有两种情况


一种是 readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;


一种是 readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。


总之,就是让这个文件回到最近一次 git commit 或 git add 时的状态。

bdef27c6867f463c913a7d620c82f862.png

3、写错内容并添加到暂存区

这时我们又写错了一些内容,并添加到了暂存区,但庆幸的是此时并没有提交到本地仓库

4efb810fc3cd43148474a3285e8d1bf4.png

git add readme.txt
git status

adb627a4794644c5a78b369a07a1d4fa.png

4、撤销暂存区的修改

我们先撤销暂存区的修改,之后查看状态,再撤销工作区的修改,查看 txt 文件,很好,内容又回来了

git reset HEAD readme.txt
git status
git checkout -- readme.txt
cat readme.txt

375fc23e0ad64dfeb03d605975201eca.png

扩展:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库


二、删除文件

1、创建新文件并添加提交

68094228c69f42ecbc4f14ca02c8ecf1.png

git add test.txt
git commit -m "add test.txt"

19366c3e413d4055ac1247adafbf43b0.png

2、删除文件

在文件管理器中删除文件,并查看当前状态

rm test.txt
git status

此时,工作区和版本库就不一致了,git status 命令会立刻告诉你哪些文件被删除了

c47fc68a63d4456a9d1c1fa3fca48a07.png

现在你有两个选择:

一是确实要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit

git rm test.txt
git commit -m "remove test.txt"

f50aa64be62142a7a2d8618f9d29b341.png

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

rm test.txt
git status
git checkout -- test.txt

aa7a1fae76234a64a3c79117e401b4f0.png

git checkout 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。


三、写在最后

看完这篇文章,想必大家对 Git 撤销修改和删除文件已经有了一定的认识。


接下来,还会继续更新 Git 相关使用的文章。


在这里,给大家推荐一下 廖雪峰大佬的官方网站 ,上面有很详细的 Git 教程。


看本篇文章,有时间可以再去详细学习廖大佬的 Git 文章。

45fc82a82c6542bdb2ff4986377d8db3.png

相关文章
|
9天前
|
数据可视化 程序员 开发工具
小白也能玩转Git:从入门到实战详细教程
小白也能玩转Git:从入门到实战详细教程
|
1月前
|
存储 Linux 开发工具
Git【入门】这一篇就够了
Git【入门】这一篇就够了
22 0
|
2月前
|
开发工具 git 开发者
Git入门:轻松掌握版本控制的艺术
【5月更文挑战第13天】Git是流行的版本控制系统,适合各种规模的项目。本文引导读者入门Git,学习版本控制艺术。内容涵盖Git简介、安装配置、基础操作(如初始化、添加文件、提交、查看状态和历史)、分支管理、协作开发(克隆、推送、拉取)及高级用法,如标签管理、子模块和版本比较。遵循最佳实践,如频繁提交、有意义的提交信息和合理分支管理,可提升开发效率。
|
2月前
|
存储 Linux 开发工具
Git 分布式版本控制系统基本概念和操作命令
Git 分布式版本控制系统基本概念和操作命令
136 0
|
2月前
|
数据可视化 开发工具 git
Git代码版本管理入门
Git代码版本管理入门
|
7天前
|
NoSQL Java Redis
实现基于Redis的分布式锁机制
实现基于Redis的分布式锁机制
|
19天前
|
NoSQL Redis
redis分布式锁redisson
底层会尝试去加锁,如果加锁失败,会睡眠,自旋加锁,直到获取到锁为止。
21 1
|
17天前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
46 0
|
18天前
|
NoSQL 算法 Java
技术好文:Redis实现分布式锁的7种方案
技术好文:Redis实现分布式锁的7种方案
|
3天前
|
NoSQL 安全 Java
技术好文:Redis分布式锁的正确实现方式
技术好文:Redis分布式锁的正确实现方式