Git指定分支或文件回退到指定版本

文章目录

  • 一、分支回滚
    • 1.1、使用 `git reset` 命令
    • 1.2、使用 `git revert` 命令
    • 1.3、使用 `git checkout` 命令
  • 二、文件回滚
    • 2.1、回滚未提交文件
    • 2.2、回滚已提交文件
      • 2.2.1、首先查看文件的历史版本
      • 2.2.2、找到你想要还原的版本
      • 2.2.3、将文件还原到你想要还原的版本
      • 2.2.4、提交代码
  • 三、最后

一、分支回滚

1.1、使用 git reset 命令

命令可以将当前分支的 HEAD 指针指向指定的提交,从而回退代码到指定版本。
该命令有三种模式:–soft–mixed--hard。它们的区别在于回退代码的程度不同。

--mixed (默认):将 HEAD 指针和暂存区都回退到指定提交,但不改变工作区的内容。
--soft: 仅将 HEAD 指针回退到指定提交,不改变暂存区和工作区的内容。
--hard:将 HEAD 指针、暂存区和工作区都回退到指定提交,会丢失最新的代码修改,慎用。

# 查看提交历史
git log # 回退到指定提交(使用 --soft 模式)
git reset --soft <commit># 查看状态,确认回退操作是否正确
git status# 提交回退后的代码
git commit -m "回退到 <commit>"# 将修改的代码推送到远程仓库
git push origin <branch>

1.2、使用 git revert 命令

git revert 命令可以将指定提交的修改反向应用到当前分支上,相当于撤销指定提交的修改。
这种方式比使用 git reset 命令更加安全,因为它不会改变提交历史,而是创建一个新的提交来撤销之前的修改。

# 查看提交历史
git log# 撤销指定提交,这样会创建一个新的提交来撤销之前的修改
git revert <commit># 提交撤销操作
git commit -m "回退到版本 <commit>"# 推送到远程仓库
git push origin <branch>

1.3、使用 git checkout 命令

git checkout 命令可以将当前分支的 HEAD 指针指向指定的提交,并将工作区的内容替换成指定提交的内容。这种方式不改变提交历史,但会直接覆盖工作区的内容,慎用

# 查看提交历史
git log# 切换到指定提交
git checkout <commit># 提交回退后的代码
git commit -m "回退到版本 <commit>"# 切回到原来的分支
git checkout <branch># 推送当前分支到远程仓库
git push origin <branch>
#<branch> 表示当前分支的名称,例如 master。这个命令会将本地分支的提交推送到远程仓库,并将远程分支更新为与本地分支一致。

二、文件回滚

如果某次改动比较大,牵涉到的文件比较多。但是某个文件本来是没问题的,结果画蛇添足,改出问题来了,这时候直接回退版本会把所有代码都回退掉,可能得不偿失。这时候就需要指定回退单个文件到为修改之前的版本。

2.1、回滚未提交文件

场景1:修改了文件/path/to/file,没有提交,但是觉得改的不好,想还原。

git checkout -- /path/to/file

2.2、回滚已提交文件

2.2.1、首先查看文件的历史版本

git log /path/to/file

2.2.2、找到你想要还原的版本

commit 052c0233bcaef35bbf6e6ebd43bfd6a648e3d93b
Author: zhong <zhong@gmail.com>
Date: Wed Nov 8 11:48:31 2023 +0800
commit modify/path/to/file

2.2.3、将文件还原到你想要还原的版本

git checkout 052c0233bcaef35bbf6e6ebd43bfd6a648e3d93b /path/to/file

2.2.4、提交代码

直接commit就可以

三、最后

本人每篇文章都是一字一句码出来,希望大佬们多提提意见。顺手来个三连击,点赞👍收藏💖关注✨。创作不易,给我打打气,加加油☕

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

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

相关文章

Scrapy爬虫异步框架之持久化存储(一篇文章齐全)

1、Scrapy框架初识&#xff08;点击前往查阅&#xff09; 2、Scrapy框架持久化存储 3、Scrapy框架内置管道&#xff08;点击前往查阅&#xff09; 4、Scrapy框架中间件&#xff08;点击前往查阅&#xff09; Scrapy 是一个开源的、基于Python的爬虫框架&#xff0c;它提供了…

Android应用程序开发实战篇----期末总结1

项目1&#xff08;了解移动电子商务开发&#xff09; 1,任务一&#xff1a;了解移动电子商务 移动电子商务&#xff1a;利用无线终端进行的电子商务活动。 移动电子商务的特点&#xff1a;方便&#xff0c;摆脱时空性&#xff0c;安全&#xff0c;潜在用户规模大&#xff0c;…

vue day2

1、指令修饰符&#xff1a;.指明一些指令后缀&#xff0c;不同后缀封装不同处理操作 按键修饰符&#xff1a;keyup.enter v-model修饰符&#xff1a; v-model.trim&#xff1a;去首位空格 v-model.number&#xff1a;转数字 事件修饰符&#xff1a; 阻止事件冒泡&#xff1…

新版idea如何开启多台JVM虚拟机

1.看看自己的项目 2.可能开始的时候啥也没有&#xff0c;就点Run Configuration Type 3.再点击Edit Configurations... 4.点击号添加SpringBoot 5.主类选择一下&#xff0c;一般就一个&#xff0c;点他选了就行。 6.然后点击Modify Options 选择添加add VM Options 7.点击appl…

云服务器哪家便宜?亚马逊AWS等免费云服务器推荐

在这数字化的时代&#xff0c;云计算技术越来越广泛应用于各种场景&#xff0c;尤其是云服务器&#xff0c;作为一种全新的服务器架构正在逐渐取代传统的物理服务器&#xff0c;“云服务器哪家便宜”等用户相关问题也受到越来越多的关注。自从亚马逊最早推出了首个云计算服务—…

如何解决主从数据库同步延迟问题?

如何解决主从数据库同步延迟问题&#xff1f; 前言 最近&#xff0c;系统上频繁出现主从延迟的问题&#xff0c;因此针对主从架构、主从同步以及主从延迟问题进行了一次学习。 主从架构浅析 在了解主从延迟之前&#xff0c;我们有必要对主从架构有一些简单的认识。在如今的…

2023-11-26 LeetCode每日一题(统计子串中的唯一字符)

2023-11-26每日一题 一、题目编号 828. 统计子串中的唯一字符二、题目链接 点击跳转到题目位置 三、题目描述 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符&#xff0c;并返回唯一字符的个数。 例如&#xff1a;s “LEETCODE” &#xff0c;则其…

深度学习及其基本原理

深度学习的 Ups and Downs概念区分神经网络的构成深度学习基本原理深度学习的普遍近似定理扩展&#xff1a;反卷积网络——可视化每一层提取的特征 深度学习的 Ups and Downs 1958&#xff1a;感知机&#xff08;线性模型&#xff09;1969&#xff1a;感知机有局限性1980s&…

SpringCloud-高级篇(五)

一&#xff1a;分布式事务理论基础 原子性&#xff08;Atomicity&#xff09; 原子性是指事务是一个不可分割的工作单位&#xff0c;事务中的操作要么都发生&#xff0c;要么都不发生。 一致性&#xff08;Consistency&#xff09; 事务前后数据的完整性必须保持一致。 隔离性&…

【九章斩题录】Leetcode:面试题 01.03. URL化(C/C++)

精品题解 &#x1f525; 《九章斩题录》 &#x1f448; 猛戳订阅 面试题 01.03. URL化 &#x1f4da; 题目&#xff1a;URL化。编写一种方法&#xff0c;将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符&#xff0c;并且知道字符串的“真实”长度。…

【JDK21】详解虚拟线程

目录 1.概述 2.虚拟线程是为了解决哪些问题 2.1.线程切换的巨大代价 2.2.哪些情况会造成线程的切换 2.3.线程资源是有限的 3.虚拟线程 4.适用场景 1.概述 你发任你发&#xff0c;我用JAVA8&#xff1f;JDK21可能要对这句话say no了。 现在Oracle JDK是每4个版本&#x…

最新版小权云黑系统 骗子添加查询源码

小权云黑系统添加骗子&#xff0c;查询骗子&#xff0c;可添加团队后台方便审核用&#xff0c;在线反馈留言系统&#xff0c;前台提交骗子&#xff0c;后台需要审核才能过&#xff0c;后台使用光年UI界面&#xff0c;新增导航列表&#xff0c;可给网站添加导航友链&#xff0c;…

qt国际化多语言

vs + qt 方法 一 (1)生成.pro文件 如果报错: cannot find any qt projects to export 则执行如下: 然后重新生成 pro文件。 (2)生成ts文件 (方法1)在项目文件(xxx.pro) 文件添加: TRANSLATIONS += en.ts zh_CN.ts 然后打开cmd命令,进入项目目录,执行 l…

Spring中的循环依赖问题

目录 1、什么是Spring的循环依赖&#xff1f; 2、如何避免循环依赖问题&#xff1f; 3、Spring的三级缓存 小结 1、什么是Spring的循环依赖&#xff1f; Spring框架中的循环依赖问题是指两个或多个bean之间相互依赖&#xff0c;形成闭环&#xff0c;导致无法完成实例化的问…

【力扣】907.子数组的最小值之和

【力扣】907.子数组的最小值之和 文章目录 【力扣】907.子数组的最小值之和1. 题目介绍2. 解法2.1 方法一&#xff1a;单调栈2.2 方法二&#xff1a;动态规划 3. Danger参考 1. 题目介绍 给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr …

ubuntu虚拟机设置跳不出来

前几天在使用ubuntu虚拟机的时候不知道哪一步出错了&#xff0c;导致右上角的设置按钮失效了&#xff0c;怎么点设置界面都出不来。 上网查阅后&#xff0c;有人说是显示器的原因&#xff0c;但是我点设置再点左上角activity并没有显示有设置窗口。 最后找到了解决办法&#xf…

【刷题笔记】分糖果||数组||暴力通过||符合思维方式||多案例分析

分发糖果 文章目录 分发糖果1 题目描述2 题目分析2.1 寻找波峰波谷2.2 从波底往波峰攀爬&#xff01;2.2 计算糖果 3 代码附录1 1 题目描述 https://leetcode.cn/problems/candy/ n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&…

Unity性能优化技巧篇

资源导入优化 随着项目越来越大&#xff0c;资源越来越多&#xff0c;有一套资源导入自动化设置很有必要&#xff0c;它不但可以减少你的工作量&#xff0c;也能更好的统一管理资源&#xff0c;保证资源的导入设置最优&#xff0c;还不会出错。 AssetPostprocessor 在Unity中…

Mo0n(月亮) MCGS触摸屏在野0day利用,强制卡死锁屏

项目:https://github.com/MartinxMax/Mo0n 后面还会不会在,我可就不知道了奥…还不收藏点赞关注 扫描存在漏洞的设备 #python3 Mo0n.py -scan 192.168.0.0/24 入侵锁屏 #python3 Mo0n.py -rhost 192.168.0.102 -lock 解锁 #python3 Mo0n.py -rhost 192.168.0.102 -unlock …

【Spring Boot】Swagger的常用注解

在Swagger的开发过程中&#xff0c;我们需要在Controller代码等处添加相应的注解&#xff0c;以便可以提高生成的接口文档的可读性为了解决这些问题&#xff0c;Swagger提供了很多的注解&#xff0c;通过这些注解&#xff0c;我们可以更好更清晰的描述我们的接口&#xff0c;包…