工具篇:git 分支版本回退

文章目录

  • 前言
  • [一、git comare with Revison 介绍](#一、git comare with Revison 介绍)
    • [1.1 什么是 Revision?](#1.1 什么是 Revision?)
    • [1.2 git diff 对比版本:](#1.2 git diff 对比版本:)
    • [1.3 常用场景与命令:](#1.3 常用场景与命令:)
  • [二、git comare with Revison 使用](#二、git comare with Revison 使用)
    • [2.1 获取提交版本的差异](#2.1 获取提交版本的差异)
    • [2.2 回退代码](#2.2 回退代码)
    • [2.3 提交代码:](#2.3 提交代码:)
  • 总结

前言

在开发过程中,可能出现某些已经发到线上的功能进行回退,而这一批次的功能是同一个时间提交的,并且改功能之后也没有上线其它的功能,此时可以考虑将改环境对应的代码分支,整体回退到到某个时间的commit 提交。


一、git comare with Revison 介绍

在 Git 中,"compare with Revision"(对比某个版本)是查看代码在特定提交版本之间差异的操作,核心通过 git diff 命令实现,用于追溯代码变更、定位问题或审核历史修改。

1.1 什么是 Revision?

"Revision" 指 Git 中的提交版本(commit),每个提交有唯一的标识 ------** commit ID **(如 a1b2c3d...,通常取前 7 位即可),也可以通过分支名、标签(tag)、HEAD 等引用表示。

例如:

复制代码
a1b2c3d:具体的 commit ID;
HEAD~3:当前分支最新提交往前数第 3 个版本;
v1.0:标签指向的版本;
feature-branch:某分支的最新提交版本。

1.2 git diff 对比版本:

对比两个版本(revision)的差异, 该命令会显示两个版本间所有文件的代码差异(包括新增、删除、修改的内容)。

bash 复制代码
git diff <revision1> <revision2>

1.3 常用场景与命令:

(1). 对比当前工作区与某个版本的差异

对比当前工作区(未提交的修改)与 commit ID 为 a1b2c3d 的版本

bash 复制代码
# 对比当前工作区(未提交的修改)与 commit ID 为 a1b2c3d 的版本
git diff a1b2c3d

对比当前工作区与上一个提交版本, 用途:查看当前修改与历史版本的区别,确认是否符合预期。

bash 复制代码
# 对比当前工作区与上一个提交版本(HEAD 指向当前最新提交,HEAD~1 是上一个)
git diff HEAD~1

(2). 对比两个历史版本的差异

复制代码
用途:追溯两个版本之间的代码变更,例如定位某个 bug 是在哪个版本引入的。
bash 复制代码
# 对比 a1b2c3d 和 d4e5f6g 两个版本的差异
git diff a1b2c3d d4e5f6g

# 对比标签 v1.0 和 v1.1 两个版本的差异
git diff v1.0 v1.1

# 对比当前分支最新版本与 3 个提交前的版本
git diff HEAD~3 HEAD

(3). 只显示差异文件列表(不看具体内容)

复制代码
用途:快速了解哪些文件在两个版本中被修改过。
bash 复制代码
# 只列出两个版本间有差异的文件路径
git diff --name-only a1b2c3d d4e5f6g

(4). 对比某个版本与分支的差异

复制代码
用途:查看历史版本与当前分支的区别,判断是否需要将历史修改合并到分支。
bash 复制代码
# 对比 a1b2c3d 版本与 develop 分支最新版本的差异
git diff a1b2c3d develop

(5). 对比某个文件在两个版本的差异

复制代码
用途:聚焦单个文件的历史变更,例如查看某功能在文件中的实现演变。
bash 复制代码
# 只看 Test.java 文件在 a1b2c3d 和 d4e5f6g 版本的差异
git diff a1b2c3d d4e5f6g -- src/main/java/Test.java

二、git comare with Revison 使用

2.1 获取提交版本的差异

(1) idea 中 选择项目-》右键-》git-》git comare with Revison

(2) 选择某个时间的commit:

可以选择要回退到的某个时间的commit

可以看到当前分支与选择的commit 文件的差异:

(3) 查看代码差异'':

鼠标双击某个具体的文件,可以查看具体的差异,其中 右侧的 Your Version 是你现在的版本,左侧的是你选择对比的commit

2.2 回退代码

确定要回退的代码后,选择某个文件或者ctrl+A 全选文件 ,右键-》Get 拉取到本地

2.3 提交代码:

使用 githubDestop 提交 对应的代码


总结

本文介绍使用 git compare 进行分支版本回退。

相关推荐
vibecoding日记3 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记3 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger4 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
红豆子不相思5 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat
杰哥技术分享5 天前
Git 仓库迁移技术文档:从 CODING.net 迁移至腾讯云 CNB
git
梅孔立5 天前
Ansible 100 台服务器一键管控实战 进阶版
服务器·git·ansible
qq_426003966 天前
git切换当前分支到远程分支
git
ON10N6 天前
100% 纯 Vibe Coding,我是怎么用 AI 撸出一个 VS Code 插件的
git·ai编程·visual studio code