文章目录
- 前言
- [一、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 进行分支版本回退。

