当前位置: 首页 > news >正文

git回退到某个版本git checkout和git reset命令的区别

在这里插入图片描述

文章目录

      • 1. `git checkout <commit>`
      • 2. `git reset --hard <commit>`
      • 两者的区别总结
      • 推荐使用场景*

在使用 Git 回退到某个版本时, git checkout <commit>git reset --hard <commit> 是两种常见的方式,但它们的用途和影响有很大的区别:


1. git checkout <commit>

  • 作用:
    将当前工作目录切换到指定的 <commit> 版本,同时会进入一种“分离 HEAD”(detached HEAD)状态。
  • 特点:
    • 不会改变分支的提交历史。
    • 适用于临时查看某个历史版本,例如查看旧代码或测试某个版本。
    • 在“分离 HEAD”状态下,你所做的更改如果不另存为新的分支,可能会丢失。
  • 影响范围:
    • 工作目录会被更新为 <commit> 指定的内容。
    • 不影响当前分支和提交记录。

示例

git checkout <commit>
# 切换到某个版本,HEAD 不在任何分支上。

如果需要保留更改,可以创建一个新分支:

git checkout -b new-branch <commit>

2. git reset --hard <commit>

  • 作用:
    将当前分支直接强制回退到指定的 <commit>丢弃之后的所有更改
  • 特点:
    • 会修改当前分支的提交历史。
    • 危险操作:会删除 <commit> 之后的提交记录及工作目录中的未提交更改。
    • 适用于彻底回退分支到某个稳定版本。
  • 影响范围:
    • 当前分支的提交记录和 HEAD 指针都会被移动到 <commit>
    • 工作目录和暂存区会被同步更新为 <commit> 的状态。

示例

git reset --hard <commit>
# 当前分支历史将直接回退到指定版本,之后的提交会丢失。

如果更改已经推送到远程仓库,需要强制推送:

git push origin branch-name --force

两者的区别总结

特性git checkout <commit>git reset --hard <commit>
影响分支历史不影响会修改分支历史
适用场景查看/测试旧版本,或创建新分支确定要彻底回退到某个版本
对未提交更改的影响保留未提交更改丢弃所有未提交更改
是否“危险操作”是(操作需谨慎)

推荐使用场景*

  • 需要保留分支历史或仅查看某个版本: 使用 git checkout
  • 确认要回退分支并丢弃之后的所有更改: 使用 git reset --hard

如果你对后续的更改不确定,建议使用 git checkout 更安全,避免误操作导致数据丢失。


结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

相关文章:

git回退到某个版本git checkout和git reset命令的区别

文章目录 1. git checkout <commit>2. git reset --hard <commit>两者的区别总结推荐使用场景* 在使用 Git 回退到某个版本时&#xff0c; git checkout <commit> 和 git reset --hard <commit> 是两种常见的方式&#xff0c;但它们的用途和影响有很…...

Preprocess

Preprocess数据预处理 文本 使用Tokenizer将文本转换为标记序列&#xff0c;创建标记的数值表示&#xff0c;并将它们组装成张量。 预处理文本数据的主要工具是标记器。标记器根据一组规则将文本拆分为标记。标记被转换为数字&#xff0c;然后转换为张量&#xff0c;这些张量…...

stm32 spi接口传输asm330l速率优化(及cpu和dma方式对比)

最近一段时间做了一个mems的项目&#xff0c;项目的方案是stm32g071做主控&#xff0c;读写3颗asm330l的硬件形态。最初是想放置4颗imu芯片&#xff0c;因为pcb空间布局的问题&#xff0c;改放了3颗。但对于软件方案来说无所谓&#xff0c;关键是如何优化spi的传输速率&#xf…...

数字时代的文化宝库:存储技术与精神生活

文章目录 1. 文学经典的数字传承2. 音乐的无限可能3. 影视艺术的数字化存储4. 结语 数字时代的文化宝库&#xff1a;存储技术与精神生活 在数字化的浪潮中&#xff0c;存储技术如同一座桥梁&#xff0c;连接着过去与未来&#xff0c;承载着人类文明的瑰宝。随着存储容量的不断增…...

flex: 1 display:flex 导致的宽度失效问题

flex: 1 & display:flex 导致的宽度失效问题 问题复现 有这样的一个业务场景&#xff0c;详情项每行三项分别占33%宽度&#xff0c;每项有label字数不固定所以宽度不固定&#xff0c;还有content 占满标签剩余宽度&#xff0c;文字过多显示省略号&#xff0c; 鼠标划入展示…...

Hive 窗口函数与分析函数深度解析:开启大数据分析的新维度

Hive 窗口函数与分析函数深度解析&#xff1a;开启大数据分析的新维度 在当今大数据蓬勃发展的时代&#xff0c;Hive 作为一款强大的数据仓库工具&#xff0c;其窗口函数和分析函数犹如一把把精巧的手术刀&#xff0c;助力数据分析师们精准地剖析海量数据&#xff0c;挖掘出深…...

前端工程 Node 版本如何选择

1. Node 与 Npm 版本对应 这是一个必知必会的问题&#xff0c;尤其是对于维护那些老掉牙、一坨坨、非常大的有着长期历史的老破大工程。 1.1. package-lock.json 版本 首先你要会看项目的 package-lock.json 文件中的 lockfileVersion 版本号&#xff0c;这对于 NPM 安装来说…...

推荐在线Sql运行

SQL Fiddle 1、网址&#xff1a;SQL Fiddle - Online SQL Compiler for learning & practiceDiscover our free online SQL editor enhanced with AI to chat, explain, and generate code. Support SQL Server, MySQL, MariaDB, PostgreSQL, and SQLite.http://www.sqlfi…...

【数据结构】【线性表】特殊的线性表-字符串

目录 字符串的基本概念 字符串的三要素 字符串的基本概念 串的编码 串的实现及基本运算 顺序串的实现 串的静态数组实现 串的动态数组的实现 顺序存储的四种方案 链式串的实现 基本运算 方案三 方案一 字符串的基本概念 数据结构千千万&#xff0c…...

app-1 App 逆向环境准备(mumu模拟器+magisk+LSPosed+算法助手+抓包(socksDroid+charles)+Frida环境搭建

一、前言 本篇是基于 mumu模拟器 进行环境配置记录。&#xff08;真机的后面博客记录&#xff09; 二、mumu模拟器magiskLSPosed算法助手 2.1、mumu模拟器 选择 mumu 模拟器&#xff0c;下载地址&#xff1a;https://mumu.163.com 安装完成后打开&#xff0c;找到设置中心进…...

在米尔FPGA开发板上实现Tiny YOLO V4,助力AIoT应用

学习如何在 MYIR 的 ZU3EG FPGA 开发板上部署 Tiny YOLO v4&#xff0c;对比 FPGA、GPU、CPU 的性能&#xff0c;助力 AIoT 边缘计算应用。 一、 为什么选择 FPGA&#xff1a;应对 7nm 制程与 AI 限制 在全球半导体制程限制和高端 GPU 受限的大环境下&#xff0c;FPGA 成为了中…...

【IT】测试用例模版(含示例)

这里写目录标题 一、测试用例模版二、怎么用模版示例如何使用这个模板 一、测试用例模版 一个相对标准的测试用例模板通常包含以下部分&#xff1a; 测试用例ID&#xff1a;唯一标识符&#xff0c;用于追踪测试用例。测试用例标题&#xff1a;简短描述测试用例的目的。测试用…...

react dnd——一个拖拽组件

React DnD是一个流行的库&#xff0c;用于在React应用程序中实现拖放功能。以下是对React DnD的详细解释&#xff0c;包括示例和API说明&#xff1a; 基本概念 在开始使用React DnD之前&#xff0c;了解以下几个基本概念是很重要的&#xff1a; Drag Source&#xff08;拖动…...

3GPP R18 LTM(L1/L2 Triggered Mobility)是什么鬼?(三) RACH-less LTM cell switch

这篇看下RACH-less LTM cell switch。 相比于RACH-based LTM,RACH-less LTM在进行LTM cell switch之前就要先知道target cell的TA信息,进而才能进行RACH-less过程,这里一般可以通过UE自行测量或者通过RA过程获取,而这里的RA一般是通过PDCCH order过程触发。根据38.300中的描…...

Flutter解压文件并解析数据

Flutter解压文件并解析数据 前言 在 Flutter 开发中&#xff0c;我们经常需要处理文件的读取和解压。 这在处理应用数据更新、安装包、存档文件等场景中尤为常见。 本文将介绍如何在Flutter中使用archive插件来解压文件并解析数据。 准备 在开始之前&#xff0c;我们需要…...

21、结构体成员分布

结构体中的成员并不是紧挨着分布的&#xff0c;内存分布遵循字节对齐的原则。 按照成员定义的顺序&#xff0c;遵循字节对齐的原则存储。 字节对齐的原则&#xff1a; 找成员中占据字节数最大的成员&#xff0c;以它为单位进行空间空配 --- 遇到数组看元素的类型 每一个成员距离…...

TSWIKI知识库软件

TSWIKI 知识库软件介绍 推荐一个适合本地化部署、自托管的知识库软件 TSWIKI介绍 tswiki 是一个适合小团队、个人的知识库、资料管理的软件&#xff0c;所有数据均本地化存储。可以本地化、私有云部署&#xff0c;安装简单。在线预览。 主要功能说明 1、简化的软件依赖和安…...

深度学习安装环境笔记

1、输出cuda版本 torch.version.cuda 返回的是 PyTorch 在编译时所使用的 CUDA 版本&#xff0c;而不是运行时实际调用的 CUDA 版本。PyTorch 在运行时实际调用的 CUDA 版本取决于系统上安装的 CUDA 驱动和库。 import torch from torch.utils.cpp_extension import CUDA_HOME…...

使用android studio写一个Android的远程通信软件(APP),有通讯的发送和接收消息界面

以下是使用 Android Studio 基于 Java 语言编写一个简单的 Android APP 实现远程通信&#xff08;这里以 TCP 通信为例&#xff09;的代码示例&#xff0c;包含基本的通信界面以及发送和接收消息功能。 1. 创建项目 打开 Android Studio&#xff0c;新建一个 Empty Activity …...

学习Python的笔记14--迭代器和生成器

1.迭代器&#xff08;Iterator&#xff09; 概念&#xff1a; 迭代意味着重复多次&#xff0c;就像循环一样。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问&#xff0c;直到所有的元素被访问完结束。 迭代器只能往前不会后退。 1.iter…...

CodeWF.Markdown:一个基于 Avalonia 12 的 Markdown 渲染控件

今天这篇文章&#xff0c;站长来聊聊我最近基本开发完成的 CodeWF.Markdown。这是一个基于 C# Avalonia 12 Markdig 做的 Markdown 渲染控件。它最早来自 CodeWF.AvaloniaControls&#xff0c;后来我把 Markdown 相关代码单独拆成了一个仓库和一组 NuGet 包&#xff1a;渲染控…...

通过环境变量安全配置Taotoken密钥实现跨平台开发

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过环境变量安全配置Taotoken密钥实现跨平台开发 在开发过程中&#xff0c;将API密钥等敏感信息硬编码在源代码中是常见的安全隐患…...

命令行集成AI代码审查:基于Gemini的Git工作流自动化实践

1. 项目概述&#xff1a;当命令行遇上代码审查在开发者的日常工作中&#xff0c;代码审查是保证代码质量、促进知识共享的关键环节。然而&#xff0c;传统的代码审查流程往往伴随着频繁的上下文切换&#xff1a;你需要离开终端&#xff0c;打开浏览器&#xff0c;登录代码托管平…...

如何解决Noah-MP陆面模型编译与配置中的三大技术挑战

如何解决Noah-MP陆面模型编译与配置中的三大技术挑战 【免费下载链接】NoahMP 项目地址: https://gitcode.com/gh_mirrors/no/NoahMP Noah-MP&#xff08;Noah with Multi-Parameterization options&#xff09;作为先进的陆面过程模型&#xff0c;在水文循环模拟、能量…...

DIY改造:为Hakko FX-901烙铁打造USB-C充电电池包

1. 项目概述&#xff1a;打造你的专属USB充电无线烙铁 如果你和我一样&#xff0c;经常需要带着烙铁跑现场——无论是调试RC模型、在Maker Faire上修复作品&#xff0c;还是在户外临时搭建一个电子装置——那你一定对传统无线烙铁的痛点深有体会。四节AA电池&#xff0c;用不了…...

基于rsync的嵌入式Ubuntu系统镜像定制与批量部署实战

1. 项目概述&#xff1a;为什么我们需要在开发板上“冻结”Ubuntu文件系统&#xff1f;在基于ARM架构的嵌入式开发中&#xff0c;尤其是使用像飞凌OK3399-C这样搭载RK3399处理器的开发板时&#xff0c;我们常常会面临一个看似简单却非常实际的痛点&#xff1a;环境部署的效率问…...

瑞萨RL78/G16开发板与EZ-CUBE3仿真器连接调试全攻略

1. 项目概述与核心价值 最近在折腾瑞萨的RL78系列MCU&#xff0c;手头正好有一块RL78/G16的快速原型开发板和一个EZ-CUBE3仿真器。对于刚接触瑞萨生态的朋友来说&#xff0c;如何把这套硬件正确地连接起来&#xff0c;并成功跑通第一个LED闪烁程序&#xff0c;往往是入门路上的…...

给单片机新手的福利:拆解一个经典的篮球计分器项目,附Keil C代码逐行分析

51单片机篮球计分器项目深度解析&#xff1a;从状态机设计到数码管驱动实战 当你第一次拿到一个完整的单片机项目源码时&#xff0c;是否曾被那些看似复杂的函数调用和中断处理搞得一头雾水&#xff1f;本文将带你深入剖析一个经典的篮球计分器项目&#xff0c;不仅理解每行代…...

DLT Viewer:面向汽车电子系统的分布式日志诊断与实时监控技术方案

DLT Viewer&#xff1a;面向汽车电子系统的分布式日志诊断与实时监控技术方案 【免费下载链接】dlt-viewer Diagnostic Log and Trace viewing program 项目地址: https://gitcode.com/gh_mirrors/dl/dlt-viewer DLT Viewer是一款基于COVESA标准的专业诊断日志分析工具&…...

数字图像处理入门:像素、通道与卷积操作的核心原理与实践

1. 项目概述&#xff1a;为什么“基本知识”是数字图像处理的基石刚入行做图像处理那会儿&#xff0c;我犯过一个典型的“新手错误”&#xff1a;拿到一张图&#xff0c;二话不说就开始调OpenCV的函数&#xff0c;什么高斯模糊、边缘检测、二值化&#xff0c;一顿操作猛如虎&am…...