工具篇: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 进行分支版本回退。

相关推荐
李少兄8 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
先跑起来再说14 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
承渊政道17 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
Doro再努力17 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
摇滚侠20 小时前
MAC IDEA GIT 提交区显示了几个不存在的目录
git·idea
城东20 小时前
Git使用[远程仓库远端的head比本地和提交的head旧,其他人拉不到最新代码]
git·head·远程仓库远端·比本地和提交的head旧·其他人拉不到最新代码
何中应1 天前
使用SSH地址拉取远程仓库代码报下面的错误
git
何中应1 天前
Git本地仓库命令补充
git
sun0077001 天前
执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?
git
胖虎11 天前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份