【Java】Java核心 81:Git 教程(4)差异比较 版本回退

news2024/11/26 1:41:42

文章目录

        • 06.GIT本地操作-差异比较
          • 目标
          • 内容
          • 小结
        • 07.GIT本地操作-版本回退
          • 目标
          • 内容
          • 小结


在这里插入图片描述

在Git中,可以使用差异比较命令和版本回退命令来查看文件之间的差异并回退到早期的版本。

以下是对这些操作的简要解释:

差异比较:你可以使用git diff命令来比较工作区中的文件与暂存区或已提交版本之间的差异。执行以下命令可以查看文件的差异:

git diff

这将显示工作区与暂存区之间的差异。如果要比较工作区与最新提交版本之间的差异,可以添加参数:

git diff HEAD

此命令将显示工作区与HEAD(最新提交)之间的差异。

版本回退:当你需要回退到早期的版本时,可以使用git checkoutgit reset命令来实现。

使用git checkout命令可以将指定版本的文件内容还原到工作区。执行以下命令:

git checkout <commit号> <文件名>

<commit号>是要回退到的具体提交的标识符,可以通过git log命令查看。<文件名>是要回退的文件名。

使用git reset命令可以撤销某次提交及之后的所有提交,并将代码库恢复到指定版本。执行以下命令:

git reset <commit号>

<commit号>是要回退到的具体提交的标识符。

注意:使用git reset命令回退版本将会删除撤销的提交及其后的提交记录,且无法恢复。建议在本地开发环境中使用该命令,避免对公共代码库产生不可逆的影响。

补充说明:在进行版本回退操作前,建议先创建一个分支并切换到该分支上,以保留当前版本的稳定状态。可以使用以下命令创建和切换分支:

git branch <分支名>
git checkout <分支名>

这样你就可以在新的分支上进行版本回退操作,而不会影响主分支或其他工作进展。


06.GIT本地操作-差异比较

目标
使用 git diff来比较暂存区、本地库与工作区的内容

内容

使用vim命令,对readme.txt文件进行编辑,添加我是第二行代码,使用wq退出

在这里插入图片描述

在这里插入图片描述

  • 工作区暂存区比较

    命令:git diff readme.txt
    

在这里插入图片描述

  • 工作区本地库比较

    命令:git diff HEAD readme.txt
    

在这里插入图片描述

  • 暂存区本地库比较

    命令:git diff --cached readme.txt
    

在这里插入图片描述

这里缓存区和本地库没有不同所以没有内容

  • 补充:可以第二次提交到暂存区和本地仓库
小结
  • 工作区与暂存区如何比较

    git diff 文件名

  • 工作区与本地库如何比较

    git diff head 文件名

  • 暂存区与本地库如何比较

    git diff --cached 文件名


07.GIT本地操作-版本回退

目标
掌握 git log、git reflog、git reset 作用
内容

当我们从暂存区提交到本地仓库时,发现当前的提交的版本有问题,希望回退到指定版本如何操作呢?

在这里插入图片描述

使用vim命令编辑readme.txt,添加“我是第三行代码”

在这里插入图片描述

命令:git add readme.txt 提交到暂存区

在这里插入图片描述

命令:git commit -m '第三次提交' 提交到本地仓库

我们可以通过git提供的查看日志命令来查看提交的日志

命令:git log  查看当前提交日志

在这里插入图片描述

可以发现,目前为止,我们已经在本地仓库中提交了3次,也就是说有3个不同版本。其中,最近的这个版本有一个标示:HEAD-> master 这就是标记当前分支的当前版本所在位置,如果没有显示当前所在位置可以使用下面命令查看:

命令:git log --decorate  查看当前提交日志,且显示当前分支的当前版本所在位置

在log中,每一个版本的前面,都有一长串随即数字: b44a10787c2b2bcc7ceb9c39cf06309065518d4b ,这是每次提交的commit id ,这是通过SHA1算法得到的值,Git通过这个唯一的id来区分每次提交

  • 回退到之前版本

    命令:git reset --hard HEAD^
    
    回归到上一个版本,Git通过HEAD来判断当前所在的版本位置。那么上一个版本,就用HEAD^标示,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。 
    

在这里插入图片描述

这时我们可以在查看一下日志 git log

在这里插入图片描述

发现只有两个版本,我们在查看一下文件内容

在这里插入图片描述

  • 回退到指定版本

    首先们使用

    命令: git reflog 查看所有操作
    

在这里插入图片描述

找到之后可以使用如下命令进行回退到指定版本

命令:git reset --hard 版本号 回退到指定版本

在这里插入图片描述

我们回到第三次提交,这时我们在查看文件

在这里插入图片描述

小结
  • 如何查看当前日志

    git log 只能看到当前操作

  • 如何查看所有操作日志

    git reflog 查看所有操作日志

  • 如何回退到上一个版本

    git reset --hard head^

  • 如何回退到指定版本

    git reset --hard 版本号




在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/701372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本地Linux 部署 Dashy 并远程访问

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 转载自cpolar极点云文章&#xff1a;本地Linux 部署 Dashy 并远程访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你…

video-04-videojs配置及使用

videojs是一种轻框架&#xff0c;可以帮我们快速开发一个video视频组件 目录 一、参考资料 二、引入videojs 三、简单了解使用 四、配置项和事件 4.1 常用配置项 4.2 常用事件 4.3 常用方法 4.4 网络状态 4.5 播放状态 4.6 视频控制 五、实例&#xff08;可直接复制…

升级iOS 17测试版后如何降级?iOS17降级教程

对于已经升级到 iOS 17 测试版的用户&#xff0c;如果在体验过程中&#xff0c;感觉到并不是那么稳定&#xff0c;例如出现应用程序不适配、电池续航下降、功能无法正常启用等问题&#xff0c;想要进行降级操作&#xff0c;可以参考本教程。 降级前注意事项&#xff1a; 1.由于…

Android 自定义手写签字板,签署姓名,签名

各位大佬好又来记笔记了~ 今天要做的是签字板&#xff0c;实现客户签名功能&#xff0c;直接看效果&#xff1a; 逐个进行签字&#xff0c;可以避免连笔导致识别不清问题。就是想要客户一个一个写&#xff0c;认真写~~。 下面方框显示的“王某才” 其实是三张图片&#xff0c;…

【算法题】动态规划中级阶段之不同路径、最小路径和

动态规划中级阶段 前言一、不同路径1.1、思路1.2、代码实现 二、不同路径 II2.1、思路2.2、代码实现 三、最小路径和3.1、思路3.3、代码实现 总结 前言 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种解决多阶段决策过程最优化问题的方法。它…

卸载及安装docker的教程-ubuntu

一、前言 万地高楼平地起~ 二、环境 OS&#xff1a;Ubuntu 20.04 64 bit 显卡&#xff1a;NVidia GTX 2080 Ti CUDA&#xff1a;11.2 三、卸载docker 1、删除docker及安装时自动安装的所有包 apt-get autoremove docker docker-ce docker-engine docker-ce-*for pkg in …

linux -信号量semphore分析

linux -信号量分析 1 struct semaphore和sema_init1.1 struct semaphore1.2 sema_init 2 down3 up4 down_interruptible5 down_killable6 down_timeout7 down_trylock 基于linux-5.15分析&#xff0c;信号量在使用是是基于spin lock封装实现的。 1 struct semaphore和sema_ini…

爬虫入门指南:如何使用正则表达式进行数据提取和处理

文章目录 正则表达式正则表达式中常用的元字符和特殊序列案例 使用正则表达式提取数据案例存储数据到文件或数据库使用SQLite数据库存储数据的示例代码SQLite基本语法创建表格&#xff1a;插入数据&#xff1a;查询数据&#xff1a;更新数据&#xff1a;删除数据&#xff1a;条…

【雕爷学编程】Arduino动手做(137)---MT8870语音解码

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

【uview calendar日历 】如何选择今天之前的数据

在日常工作中&#xff0c;使用uniappuview的ui组件&#xff0c;使用日历组件默认是无法选择当前之前的日期&#xff0c;现在讲下解决的方法 设置 最小的可选日期minDate&#xff0c;最大可选日期maxDate&#xff0c; 默认选中的日期&#xff0c;mode为multiple或range是必须为数…

自定义选项卡组件,选项可插槽html

文件夹xxtabs 四个文件 index暴露 render vue添加虚拟节点到插槽&#xff08;自定义标签结构&#xff09; tabs选项卡整体 abpaneq切换区 tabs.vue <template><div class"gnip-tab"><div class"gnip-tab-nav"><divv-for"(item,…

“sudo”组不存在”或“用户不在 sudoers 文件中。此事将被报告”

解决方法: 使用命令&#xff1a;usermod -a -G sudo tom (换成其他的用户名&#xff0c;也是一个道理)&#xff0c;不过还是不行。 实际解决还是要执行 sudo visudo &#xff0c;在这个文件中去添加用户 这样修改之后&#xff0c;保存并退出&#xff0c;亲测有效&#xff01; …

【FFmpeg实战】AAC编码介绍

AAC&#xff08;Advanced Audio Coding&#xff0c;译为&#xff1a;高级音频编码&#xff09;&#xff0c;是由Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia等公司共同开发的有损音频编码和文件格式。 对比MP3 AAC被设计为MP3格式的后继产品&#xff0c;通常在相同的比…

训练自己的ChatGPT 语言模型(一).md

0x00 Background 为什么研究这个&#xff1f; ChatGPT在国内外都受到了广泛关注&#xff0c;很多高校、研究机构和企业都计划推出类似的模型。然而&#xff0c;ChatGPT并没有开源&#xff0c;且复现难度非常大&#xff0c;即使到现在&#xff0c;没有任何单位或企业能够完全复…

Atlas200 DK A2与Arduino进行UART串口通信

我们在做一些人工智能的应用开发时往往使用人工智能开发板作为上位机&#xff08;比如我们的小滕&#xff09;&#xff0c;Arduino、stm32等作为下位机控制板&#xff0c;通过上位机进行人工智能模型的推理之后进而给下位机传输对应的控制命令实现智能控制。那么如何实现两者的…

简化交互体验——探索Gradio的ClearButton模块

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

ndarray对象怎样创建?ndarray基本属性列举

numpy中包含一个N维数组对象&#xff0c;即ndarray对象&#xff0c;该对象具有矢量算术能力和复杂的广播能力&#xff0c;常用于科学计算。ndarray对象中的元素可以通过索引访问&#xff0c;索引序号从0开始;ndarray对象中存储的所有元素的类型必须相同。创建ndarray对象的方式…

输入框设置placeholder的文字居中

<input classlogin-form-pwd placeholder请输入商家登录密码 placeholder-class"center"></input> .center{ text-align: center; }

Linux下 MHA故障切换 主从角色提升

目录 所有主机共同操作 manger操作 其他四台安装 搭建主从复制环境 nobe slave1 配置 slave2 slave3 配置 配置MHA环境 简述MHA&#xff1a; MHA&#xff08;Master High Availability&#xff09;目前在MySQL高可用方面是一个相对成熟的解决方案&#xff0c;它由…

MySQL中的DDL操作,MySQL中DML操作,MySQL查询数据,SQL函数,MySQL中的索引,MySQL事务,MySQL的用户管理,MySQL分页查询

目录 MySQL中的DDL操作 一、创建表与删除表 1&#xff0c;创建表 2&#xff0c;查看已创建的表。 3&#xff0c;删除表 二、修改表 1&#xff0c;修改表名 2&#xff0c;修改列名 3&#xff0c;修改列类型 4&#xff0c;添加新列 5&#xff0c;删除指定列 三、MySQ…