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

Git 查看修改记录 二

Git 查看修改记录 二

续接 Git 查看一个文件的修改记录 一

一、修改 A.txt

修改 A.txt

number=6

执行命令

git add .
git commit -a -m "修改 number=6"
# git commit -a -m "修改 number=6" 执行 输出如下
# $ git commit -a -m "修改 number=6"
# [master_2 e84921c] 修改 number=6
#  1 file changed, 1 insertion(+), 1 deletion(-)git push
二、强制回退到上一个提交

执行命令

# 将 HEAD 指针回退到上一个提交
git reset HEAD~1
# 输出如下
# Unstaged changes after reset:
# M       A.txt

此时 A.txt 状态是修改中
此时 A.txt 的内容就是 number=6
因为 git reset HEAD~1 将 HEAD 回退到了上一个提交,那此时 A.txt 的修改还没有提交

执行命令

# 将 A.txt 的修改丢弃
git checkout .
三、推送到远端

执行命令

$ git push
To github.com:LIQIANGEASTSUN/JenkinsTest.git! [rejected]        master_2 -> master_2 (non-fast-forward)
error: failed to push some refs to 'github.com:LIQIANGEASTSUN/JenkinsTest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. If you want to integrate the remote changes,
hint: use 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

push 失败,意思是当前分支落后远端分支,需要先执行 git pull
此时如果执行 git pull 再执行 push 是正确流程

此处展示一个错误的示范
不执行 git pull

$ git push origin master_2 --force
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To github.com:LIQIANGEASTSUN/JenkinsTest.git+ e84921c...4b59d0b master_2 -> master_2 (forced update)

强制推送到远端: 由于已经重置了本地的提交历史,需要强制推送到远端

四、查看修改记录

执行命令

git log

输出如下

commit 4b59d0be1c4530355f19f34a1c85dc68b0192e37 (HEAD -> master_2, origin/master_2)
Author: liqiang <liqiangeastsun@163.com>
Date:   Fri Feb 14 10:41:56 2025 +0800修改number=5commit 020a6d24b731791f0729667b2c8788cedd04a5a4
Author: liqiang <liqiangeastsun@163.com>
Date:   Fri Feb 14 10:41:30 2025 +0800修改number=4commit 347414f7c14876a8fcd58f57b3b76866c7c55e0d
commit 4b59d0be1c4530355f19f34a1c85dc68b0192e37 (HEAD -> master_2, origin/master_2)
Author: liqiang <liqiangeastsun@163.com>
Date:   Fri Feb 14 10:41:56 2025 +0800修改number=5commit 020a6d24b731791f0729667b2c8788cedd04a5a4
Author: liqiang <liqiangeastsun@163.com>
Date:   Fri Feb 14 10:41:30 2025 +0800修改number=4commit 347414f7c14876a8fcd58f57b3b76866c7c55e0d
Author: liqiang <liqiangeastsun@163.com>
Date:   Fri Feb 14 10:41:02 2025 +0800修改number=3commit ca103f51961e12919c1ce16a83b537cb0c31f7cd
Author: liqiang <liqiangeastsun@163.com>
Date:   Fri Feb 14 10:40:33 2025 +0800修改number=2commit 075bd5a9b33b2c32b3478dcbab9891bf00124a58
Author: liqiang <liqiangeastsun@163.com>
Date:   Fri Feb 14 10:39:58 2025 +0800添加 A.txt 第一次提交

发现之前的提交 “修改 number=6” 找不到了
到 SourceTree上看下
在这里插入图片描述
SourceTree上也没有 “修改 number=6” 的记录

到 TortoiseGit 上看 看log
选中文件 右键 弹窗选择 TortoiseGit -> Show log
在这里插入图片描述
TortoiseGit 上也没有 “修改 number=6” 的记录

执行 git push origin master_2 --force 强制推送,确实是能推送成功,但是它销毁了一些提交记录

五、找提交记录

执行命令

git reflog
# 输出日志如下
4b59d0b (HEAD -> master_2, origin/master_2) HEAD@{0}: reset: moving to HEAD~1
e84921c HEAD@{1}: commit: 修改 number=6
4b59d0b (HEAD -> master_2, origin/master_2) HEAD@{2}: commit: 修改number=5
020a6d2 HEAD@{3}: commit: 修改number=4
347414f HEAD@{4}: commit: 修改number=3
ca103f5 HEAD@{5}: commit: 修改number=2
075bd5a HEAD@{6}: commit: 添加 A.txt 第一次提交

可以看到 e84921c HEAD@{1}: commit: 修改 number=6 其中 e84921c 就是这个提交的 Hash
还可以看到 之后又执行了一次 reset: moving to HEAD~1

执行命令

$ git show e84921c
commit e84921caa1808b6b1ad9bc9d98ef57d6402399b6
Author: liqiang <liqiangeastsun@163.com>
Date:   Fri Feb 14 12:25:55 2025 +0800修改 number=6diff --git a/A.txt b/A.txt
index 14551e5..2e2054b 100644
--- a/A.txt
+++ b/A.txt
@@ -1,3 +1,3 @@-number = 5
\ No newline at end of file
+number = 6
\ No newline at end of file

从日志可以看到这条提交的完整 commit e84921caa1808b6b1ad9bc9d98ef57d6402399b6
这条提交修改了 A.txt
将 number 从 number = 5 修改为 number = 6

如果想恢复 这条提交 请看 Git 回滚 checkout、reset、revert

相关文章:

Git 查看修改记录 二

Git 查看修改记录 二 续接 Git 查看一个文件的修改记录 一 一、修改 A.txt 修改 A.txt number6执行命令 git add . git commit -a -m "修改 number6" # git commit -a -m "修改 number6" 执行 输出如下 # $ git commit -a -m "修改 number6"…...

【STM32】增量型旋钮编码器

1.增量型旋钮编码器原理 该编码器有A&#xff0c;B两相&#xff0c;当顺时针旋转时 B相会提前A相90度&#xff08;匀速转的时候&#xff09;&#xff0c;也就是A相上升沿时&#xff0c;B相对应高电平&#xff0c;计数器会1&#xff0c;A相下降沿时&#xff0c;B相为低电平时&…...

电动汽车电池监测平台系统设计(论文+源码+图纸)

1总体设计 本次基于单片机的电池监测平台系统设计&#xff0c;其整个系统架构如图2.1所示&#xff0c;其采用STC89C52单片机作为控制器&#xff0c;结合ACS712电流传感器、TLC1543模数转换器、LCD液晶、DS18B20温度传感器构成整个系统&#xff0c;在功能上可以实现电压、电流、…...

备战蓝桥杯 Day2 枚举 Day3 进制转换

Day2 枚举 1.要点 枚举要细致&#xff0c;考虑所有情况&#xff0c;一般为填空题&#xff0c;根据题目选择手算还是机算 Day3 进制转换 进制转换 1.要点 1.任意k进制转换为十进制 输入字符串得到某个k进制数组a(从1开始&#xff0c;长度为n) ll y0; for(int i1;i<n;…...

基于语义语言的语义通信(SemCom)理论:语义编码、语义解码、CSED 及语言利用

语义通信(Semantic Communication, SemCom)超越了传统 Shannon 通信范式,旨在通过语义信息的高效编码、解码及推理,实现更智能、高效的通信系统。在基于语义语言(Semantic Language)的 SemCom 设计中,核心问题包括: 语义编码问题(Semantic Encoding Problem)语义解码…...

差分的性质

目录 差分的性质1)各阶差分均可用函数值表示2)用各阶差分表示函数值3)差商与差分的关系 差分的性质 1)各阶差分均可用函数值表示 例如 Δ n f k ( E − I ) n f k ∑ j 0 n ( − 1 ) j ( n j ) E n − j f k ∑ j 0 n ( − 1 ) j ( n j ) f n k − j \Delta^nf_k(\text…...

语义源的速率-失真特征(Rate-Distortion Characteristics of Semantic Sources)在语义通信中的理论分析

1. 引言 在传统香农信息论中,通信的目标是无失真地传输比特流,其核心度量是 信道容量(Shannon Capacity)。然而,在语义通信(Semantic Communication, SemCom)中,通信目标不仅仅是比特的正确传输,而是接收端对信息的正确理解。因此,我们需要重新定义源编码(Source C…...

python 浅拷贝和深拷贝

浅拷贝&#xff08;Shallow Copy&#xff09;语法示例代码 1示例代码 2 深拷贝&#xff08;Deep Copy&#xff09;语法示例代码 浅拷贝与深拷贝的区别示例&#xff1a;浅拷贝与深拷贝的对比 浅拷贝&#xff1a;只复制外层容器&#xff0c;内层嵌套对象仍然是共享的&#xff0c;…...

Python基于 Flask 创建简单Web服务并接收文件

在全部网口上创建web服务, 监听8080端口关闭debug模式GET时返回HTML界面, 用于提交文件POST到 /upload 时, 从接收的 file 变量中读取文件, 并传递给 opencv 解析为 image 对象 from flask import Flask, request, redirect, url_for import os import cv2 import numpy impor…...

DeepSeek助力:打造属于你的GPTs智能AI助手

文章目录 一、环境准备1.安装必要的工具和库2. 选择合适的开发语言 二、核心技术选型1. 选择适合的AI框架 三、功能实现1. 文本生成与对话交互2. 代码生成与自动补全3. 数据分析与报告生成 四、案例实战1. 搭建一个简单的聊天机器人2. 创建一个代码生成器 五、总结与展望1. 当前…...

C语言基础系列【12】运算符

博主介绍&#xff1a;程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章&#xff0c;首发gzh&#xff0c;见文末&#x1f447;&#x1f…...

【verilog】函数clogb2的解读

最近经常看到clogb2函数。 源代码如下所示。 function integer clogb2; input [31:0] value; reg [31:0] tmp; reg [31:0] rt; begin tmp value - 1; for (rt 0; tmp > 0; rt rt 1) tmp tmp >> 1; clogb2 rt; end endfunction 这个函数的意思是&#xff1a;这段…...

服务器之连接简介(Detailed Explanation of Server Connection)

一台服务器最大能支持多少连接&#xff1f;一台客户端机器最多能发起多少条连接&#xff1f;&#xff1f; 我们知道TCP连接&#xff0c;从根本上看其实就是client和server端在内存中维护的一组【socket内核对象】&#xff08;这里也对应着TCP四元组&#xff1a;源IP、源端口、…...

华为2288H V5服务器无法启动问题处理

问题&#xff1a;通电后服务器前面显示888&#xff0c;点击电源键没有反应 一.通过管理口管理服务器硬件设备 华为2288H V5它默认的IP是192.168.2.100 网关是255.255.255.0 2.将网线一头连接服务器的Mgmt口&#xff0c;另一头来连接笔记本的网口&#xff0c;将笔记本的的本地…...

Windows系统中常用的命令

随着Windows系统的不断改进&#xff0c;维护系统时有时候会因为新系统的更新而找不到对应的模块或者相关的信息入口&#xff0c;这个时候&#xff0c;记住一些命令就可以起到很好的帮助作用。 比如&#xff0c;windows11中的网络属性的修改&#xff0c;可能习惯了windows10或者…...

华宇TAS应用中间件与因朵科技多款产品完成兼容互认证

在数字化浪潮澎湃向前的当下&#xff0c;信息技术的深度融合与协同发展成为推动各行业创新变革的关键力量。近日&#xff0c;华宇TAS应用中间件携手河北因朵科技有限公司&#xff0c;完成了多项核心产品的兼容互认证。 此次兼容性测试的良好表现&#xff0c;为双方的进一步深入…...

数据结构:哈夫曼树

1.概念 哈夫曼树&#xff08;Huffman Tree&#xff09;是一种用于数据压缩的二叉树&#xff0c;由大卫哈夫曼&#xff08;David A. Huffman&#xff09;于1952年提出。它通过构建最优二叉树来实现数据的高效压缩&#xff0c;广泛应用于文件压缩、图像压缩等领域。 哈夫曼树的…...

第36天:安全开发-JavaEE应用第三方组件Log4j日志FastJson序列化JNDI注入

时间轴&#xff1a; 演示案例&#xff1a; Java-三方组件-Log4J&JNDI Java-三方组件-FastJson&反射 Maven的下载及配置&#xff1a; IDEA配置Maven的超详细步骤_java_脚本之家 Java-三方组件-Log4J&JNDI JNDI 注入&#xff1a; ( 见图 ) Java Naming and Dire…...

21爬虫:使用playwright接管本地已经登录淘宝的浏览器并查找python相关店铺信息

1.playwright如何接管本地浏览器 &#xff08;1&#xff09;首先找到电脑上安装的Chrome浏览器可执行程序的完整路径&#xff1a; Mac电脑上可执行程序的完整路径为&#xff1a; /Applications/Google Chrome.app/Contents/MacOS/Google Chrome windows系统的电脑上查找可执行…...

【C++】RBTree(红黑树)模拟实现

文章目录 1.红黑树的概念2.红黑树的性质3.红黑树的结点4.insert函数&#xff08;插入结点&#xff09;5.左旋、右旋6.总代码 后续有时间会增加erase 1.红黑树的概念 红黑树是一种自平衡的二叉搜索树。每个节点额外存储了一个 color 字段 (“RED” or “BLACK”)&#xff0c; …...

Redis——优惠券秒杀问题(分布式id、一人多单超卖、乐悲锁、CAS、分布式锁、Redisson)

#想cry 好想cry 目录 1 全局唯一id 1.1 自增ID存在的问题 1.2 分布式ID的需求 1.3 分布式ID的实现方式 1.4 自定义分布式ID生成器&#xff08;示例&#xff09; 1.5 总结 2 优惠券秒杀接口实现 3 单体系统下一人多单超卖问题及解决方案 3.1 问题背景 3.2 超卖问题的…...

【现代深度学习技术】深度学习计算 | GPU

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…...

USB Flash闪存驱动器安全分析(第一部分)

翻译原文链接&#xff1a;Hacking Some More Secure USB Flash Drives (Part I) | SySS Tech Blog 文章翻译总结&#xff1a;文章对一些具有AES硬件加密的USB闪存驱动器的网络安全分析研究。研究由SySS的IT安全专家Matthias Deeg进行&#xff0c;他在2022年初发现了几个安全漏…...

3.1 严格Stubbing模式

严格Stubbing&#xff08;Strict Stubbing&#xff09;是Mockito提供的一种增强测试严谨性的模式&#xff0c;旨在检测以下问题&#xff1a; 多余的Stubbing&#xff1a;配置了未被调用的方法桩。不必要的Stubbing&#xff1a;Stubbing未被使用且不影响测试结果。桩顺序错误&a…...

【Linux】--- 基础开发工具之yum/apt、vim、gcc/g++的使用

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; Linux网络编程 本篇博客我们来认识一下Linux中的一些基础开发工具 --- yum,vim,gcc/g。 &#x1f3e0; yum &#x1f3b8; 什么是yum 当用户想下载软…...

Python + WhisperX:解锁语音识别的高效新姿势

大家好&#xff0c;我是烤鸭&#xff1a; 最近在尝试做视频的质量分析&#xff0c;打算利用asr针对声音判断是否有人声&#xff0c;以及识别出来的文本进行进一步操作。asr看了几个开源的&#xff0c;最终选择了openai的whisper&#xff0c;后来发现性能不行&#xff0c;又换了…...

redis 缓存击穿问题与解决方案

前言1. 什么是缓存击穿?2. 如何解决缓存击穿?怎么做?方案1: 定时刷新方案2: 自动续期方案3: 定时续期 如何选? 前言 当我们使用redis做缓存的时候,查询流程一般是先查询redis,如果redis未命中,再查询MySQL,将MySQL查询的数据同步到redis(回源),最后返回数据 流程图 为什…...

SAP HCM 批量核算工资报错如何定位错误 (SAT分析错误)

导读 簇目录 (表 RGDIR) 不包含任何记录:今天遇到一个很奇怪的问题&#xff0c;簇目录 (表 RGDIR) 不包含任何记录&#xff0c;而且出现的问题没有具体到员工编号&#xff0c;所以处理问题非常棘手。今天分享下我的处理方式&#xff0c;以便大家遇到这类的问题不知道如何下手。…...

常用共轭先验分布

内容来源 贝叶斯统计&#xff08;第二版&#xff09;中国统计出版社 正态分布的均值 总体分布 N ( θ , σ 2 ) N(\theta,\sigma^2) N(θ,σ2) 先验分布为正态分布 N ( μ , τ 2 ) N(\mu,\tau^2) N(μ,τ2) 样本 x i ( i 1 , 2 , ⋯ , n ) x_i(i1,2,\cdots,n) xi​(i1…...

浅聊MQ之Kafka与RabbitMQ简用

&#xff08;前记&#xff1a;内容有点多&#xff0c;先看目录再挑着看。&#xff09; Kafka与RabbitMQ的使用举例 Kafka的使用举例 安装与启动&#xff1a; 从Apache Kafka官网下载Kafka中间件的运行脚本。解压后&#xff0c;通过命令行启动Zookeeper&#xff08;Kafka的运行…...