【Git】03 撤销 & 版本回退
回退分为三种情况,每种情况对应了我们文件的存储区域
工作区
|
暂存区
|
版本区(当前分支)
1、文件可能存放在工作区,没有被Git追踪【红色标记状态】
2、文件可能已经添加到暂存区,没有被Git提交到版本分支中【绿色状态】
3、文件可能已经在版本分支中
1、在工作区的撤销
首先查看Git当前状态:
对我们工作区的文件进行内容更改:
vim text.txt
A new content insert this file...
再次查看,很显然的,更改后的文件,Git就会标记为未追踪的文件
如果要撤销回到最初的样子【这是撤销命令】
git checkout 文件名称
可以查看文件的状态:
之前添加的内容已经没有了,Git仓库状态显示未没有需要提交的,工作树干净
2、在暂存区中的撤销
现在重新添加内容,并且提交到暂存区中:
文件添加进暂存区:
对暂存区的文件撤销,即把文件从暂存区拉回到工作区:
git reset HEAD -- 文件名称
如果撤销所有暂存区的文件,可以:
git reset HEAD -- .
或者直接删除暂存区中的文件:
git rm --cached 文件名称
3、在版本分支中的版本回退:
首先把text.txt文件进行提交,每一次提交代表了一个版本存储在版本分支中:
每一个版本都具有独一无二的版本序列号,例如下图的黄色字符串
SVN是一个服务器集中式的版本控制系统,所有的版本控制统一在SVN中执行
但是Git是一个分布式的版本控制系统,每一个人都有独立的本地仓库
版本不会统一在SVN中,每一个开发者的仓库中的版本号就有可能会一样,这样把版本提交到统一的仓库中就会发生问题
版本冲突,所以为了解决这个问题,Git使用了这种奇特的序列号作为版本号,以防止版本冲突
例如现在最新的版本是第三次提交,而我们希望回退到第二版本或者更早的。。。
首先是回退到上一个版本
这里一共三个版本,最新版本就是第三次提交
执行这个命令以后可以看到,当前的版本到了第二次提交了
git reset --hard HEAD^
如果要回退临近的几个版本,^表示上一个版本,多个^就表示之前的第n个
git reset --hard HEAD^^^^ ...
指令的意思就很明确了,从头开始回退到第N个版本
但是如果我们希望回退到指定的版本,可以声明版本号来回退:
git reset --hard 版本号
【Git】03 撤销 & 版本回退的更多相关文章
- [原]git的使用(一)---建立本地仓库、add和commit、status和git diff、版本回退使用git reset
在window下已经安装了git的环境 1.建立本地仓库 mkdir test #建立test目录 cd test #进入目录 git init # ...
- Git使用:版本回退
在Git中,我们可以用 git log命令查看我们修改的历史记录 C:\Users\Administrator\Documents\GitHub\learngit [master]> git l ...
- 【Git学习笔记】初始化Git仓库和版本回退
学习地址 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 什么是版本库呢?版本库又 ...
- git中的版本回退
git版本回退有两种情况,一种是从本地版本库中(head区)回退到某个版本,可以用命令 git reset --hard head^ 或git reset --hard head~x ,head指的是 ...
- Git秘籍:在 Git 中进行版本回退
导读 在这篇文章中,你将学到如何查看项目中的历史版本,如何进行版本回退,以及如何创建 Git 分支以便你可以大胆尝试而不会出现问题.快来试试吧. 在你的 Git 项目的历史中,你的位置就像是摇滚专辑中 ...
- Git教程之版本回退(4)
现在,我们已经学会了修改文件,然后把修改提交到Git版本库,现在再次修改readme.txt文件如下:
- Git 系列(四):在 Git 中进行版本回退
在这篇文章中,你将学到如何查看项目中的历史版本,如何进行版本回退,以及如何创建 Git 分支以便你可以大胆尝试而不会出现问题. 在你的 Git 项目的历史中,你的位置就像是摇滚专辑中的一个片段,由一个 ...
- Git -- 基本操作 之 版本回退
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...
- Git学习-Git时光机之版本回退(二)
Git,是Linus花了两周时间用C写的一个分布式版本控制系统.牛人该怎么定义? 零.结论先行 倒叙总结一下: HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git ...
- Git分支和版本回退
一.分支 1.分支简单介绍 简单使用: 可以将git branch new_branch和git checkout new_branch两个命令合并成一个命令: git checkout -b new ...
随机推荐
- k8s网络问题以及容器跨宿主机通信原理
[0]资源配置文件 [root@mcwk8s03 mcwtest]# ls mcwdeploy.yaml [root@mcwk8s03 mcwtest]# cat mcwdeploy.yaml api ...
- 铭瑄 USB 供电不足
铭瑄 USB 供电不足 可能是USB固件开了节能,节能状态和某些设备会不兼容,更新固件试试固件链接:链接:https://pan.baidu.com/s/1RxHEddYe6TWMDlMJ3PQB1Q ...
- centos 7 mysql8 安装和卸载
cent os 7 安装 mysql 8--install-start官网下载MySQL的RPM源,地址:https://dev.mysql.com/downloads/repo/yum/ 下载这个项 ...
- C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 文件夹体积很大
现象:大量调用.p12证书时,C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 文件夹变得越来越大. 调用代码: X509Certificate2 x50 ...
- 18.9k star!一个高性能的嵌入式分析型数据库,主要用于数据分析和数据处理任务。
大家好,今天给大家分享的是一个开源的面向列的关系数据库管理系统(RDBMS). DuckDB是一个嵌入式的分析型数据库,它提供了高性能的数据分析和数据处理能力.DuckDB的设计目标是为数据科学家.分 ...
- Lucene demo演示搜索查询歌手,歌名,歌词
1.导入pom jar文件 <dependency> <groupId>org.apache.lucene</groupId> <artifactId> ...
- Nuxt3 的生命周期和钩子函数(五)
title: Nuxt3 的生命周期和钩子函数(五) date: 2024/6/29 updated: 2024/6/29 author: cmdragon excerpt: 摘要:本文详细介绍了Nu ...
- 实测52.4MB/s!全国产ARM+FPGA的CSI通信案例分享!
CSI总线介绍与优势 CSI(CMOS sensor parallel interfaces)总线是一种用于连接图像传感器和处理器的并行通信接口,应用于工业自动化.能源电力.智慧医疗等领域,CSI总线 ...
- Nginx配置以及热升级
目录 Nginx详解 1. Nginx关键特性 2. Nginx配置 2.1 event 2.2 http 2.2.1 log_format 2.2.2 sendfile 2.2.3 tcp_nopu ...
- 使用kafka作为生产者生产数据_到_hbase
配置文件: agent.sources = r1agent.sinks = k1agent.channels = c1 ## sources configagent.sources.r1.type = ...