Git 查看提交日志及差异对比

news/2025/2/15 19:28:13/文章来源:https://www.cnblogs.com/myshiqiqi/p/18717291

学习使用图形化的方式查看提交历史,调查提交之间、分支之间或者甚至你的工作目录、暂存区和存储区之间有哪些变更。

本节 Git 命令概览

git log # 列出“当前分支”中的所有提交
# 💡 最后一个提交在最上面,后面是它的父提交,依此类推

查看提交历史记录

git log # 列出“当前分支”中的所有提交
# 💡 最后一个提交在最上面,后面是它的父提交,依此类推

提交除了存储所提交变更的一个指针,还会存储一组元数据,git log 就是简单地列出了所有提交的元数据所包含的信息。

控制输出格式-截短 ID

git log --abbrev-commit

--abbrev-commit 标志只显示足够多的字符。

忽略作者和日期

git log --pretty=oneline

pretty 标志有一个内置的格式化选项:oneline,可以针对每个提交只显示一行简化的信息。(格式化选项还可以自定义)

以上两个标志可以结合使用:

git log --pretty=oneline --abbrev-commit

--pretty=oneline --abbrev-commit 这些标志的顺序不重要。

组合

因为这两个组合经常会被用到,Git 提供了一个快捷方式表示这两个标志的组合:--oneline 标志。

git log --oneline
# git log --pretty=oneline --abbrev-commit 的简写

查看所有分支的提交记录

假设现在有两个分支 branch-abranch-b,因为 HEAD 标记此刻在提交 C 上,因此此时 git log 将输出 C>B>A 的提交记录信息。

查看当前所在分支:

branch-a 分支上的日志:

使用标志 --all 查看所有分支的提交记录。

git log --oneline --all

现在 master、branch-a 和 branch-b 的提交记录都会被列出来。

但上面有的提交信息无法直观地表达出其所属的分支,此时可以使用 --graph 标志用图形化的方式显示提交分支结构。

git log --oneline --all --graph

查看文件差异

前提:只加当文件的状态是已被跟踪时,在修改文件后,才能检查修改的文件与暂存区的快照有哪些差异

git diff # diff 是 difference 的简写

如果修改了工作目录中的某些文件内容,但修改的内容还没有添加到暂存区,此时就可以使用上面的命令进行比较。

如果修改了多个文件及有多处修改,该命令会列出所有文件的所有修改差异。

不过 Git 会将这些差异按区块一个一个列出来,而不是将所有差异一股脑儿地展示在你的眼前❗

按单词显示差异

git diff 默认会列出行上的差异。

git diff --word-diff

红色文本:方括号中的文本表示旧的文本;绿色文本:花括号中的文本表示新的文本。
⭐ 我更喜欢这样的差异对比方式,不仅节省空间,而且更醒目。

暂存快照与提交快照的差异对比

提前:如果工作目录中所有的修改内容都已经添加到暂存区,此时使用 git diff 是不会有任何输出的。(因为此时工作目录的状态与暂存区的状态是一样的)

但暂存区的新增快照还没有提交到存储区,此时可以将暂不区与存储区进行差异比较。

git diff --cached
# 语法二
git diff --staged
# --cached 和 staged 作用是一样的

💡 cached 表示已缓存的,staged 表示已被跟踪的,这两个状态只能发生在暂不区或存储区,因此这两个标志对比的就是暂存区和存储区。

比较分支差异

前提:假设现在要将 branch-b 分支合并到 master 分支上,那首选要切换到 master 分支❗

git switch master
git diff master branch-b # 参数一表示目标分支(即当前所在的分支),参数二表示源分支(即用于比较的分支)

目标分支:一般表示要合并时的集成分支;
源分支:一般表示合并到集成分支时的来源。(这总叫法可以用在分支差异比较时的视角)

💡 需要注意的是:当比较两个分支的差异时,比较的是分支指向的两个提交(这是两个存储区)。

💡 想你中一下,如果此时切换到 branch-b 分支,使用 git diff branch-b master 将看到什么的结果?

只提到一个分支名时...

前提:假设现在在 master 分支。

git diff branch-b

如果提供的参数是 branch-b,最终的结果是:将 branch-b 分支当成目标,将当前工作目录当成源,显示的表达即 👇

git diff branch-b <word-dir>

如果 master 分支上的工作树是干净的。此时的表达结果也等于 👇

git diff branch-b master (此时的工作目录状态与存储区的状态是一致的)

查看两个指定提交的差异

git diff target-id source-id

在输入差异信息时,a 和减号表示的是目标提交,b和加号表示的是源提交。如下图:红色有减号的文本表示目标提交里的内容信息,绿色加号的文本表示源提交里的文本信息。

一定要分清比较的目标与源:git diff target-id source-id

如果将目标和源把过来,结果如下 👇

👀 考虑:如果新建一个文件后,使用 git diff --cached 将会是什么结果?

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

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

相关文章

肖哥弹架构【CSDN2024年度博客之星总评选】求拉票

2024年度博客之星进入拉票环节 1、投票地址 肖哥弹架构:CSDN投票地址 https://www.csdn.net/blogstar2024/detail/287 。 各位读者们、兄弟姐妹们。多多投票,你的支持就是我的动力。感谢! 2、投票二维码3、投票时间段 2月14日-2月20日 每日有相同票数的投票机会 ,4、2024…

风车IM通讯源码【已搭建验证】

风车IM即时通讯聊天系统源码_聊天APP_附APP_带安装教程 风车im 是一款独立服务器部署的即时通讯解决方案,可以帮助你快速拥有一套自己的移动社交、 企业办公、多功能业务产品。独立部署!加密通道!牢牢掌握通讯信息! 源码下载:https://www.yundazhe.cn/757.html 本文在【云…

绿色通道(单调队列dp)

崩溃了,debug半天发现是变量名重复了 #include<iostream> #include<cstring> #define int long long using namespace std; const int N=1e5; int q[N]; int f[N]; int w[N]; int sum=0; signed main(){int n,ti;cin>>n>>ti;for(int i=1;i<=n;i++…

Transformer模型在J6平台上的高效支持

背景 相对于传统 CNN 模型来说,Transformer 模型的最大的一个特点就是灵活性。这个灵活性主要体现在模型中穿插大量的数据重排操作,即 Reshape 和 Transpose。如下图 1 所示,对于一个典型的 Attention 结构来说,Reshape 和 Transpose 操作的数量大概可以占到所有操作的一半…

3.1 IMU板级硬件设计----硬件设计指南

本系列文章是笔者总结多年工作经验,结合理论与实践进行整理备忘的笔记。希望能在帮助自己温习整理避免遗忘的同时,也能帮助其他需要参考的朋友。笔者会不定期进行查漏补缺。如有谬误,欢迎大家进行指正。 一、设计要点 1.IMU的贴片位置远离大电流路径、射频信号,通信信号走线…

leetcode hot 01

解题思路:如果两个链表在某一点相交,那么那一点之后的node也都会相同,长度也相同。所以,我们先遍历获取对应每一条链表的长度,然后让长的链表先走两个链表长度之差的距离,然后再同时起步,每个节点进行对比,能不能找到相同的。 /*** Definition for singly-linked list.…

【APP逆向33】root监测与跳过(基础版,Java层hook)

前言:有些App在root过的手机上运行不了,会弹出安全提示,我们在逆向时必须跳过才能进行下一步操作,root监测主要有两种方式,1.JAVA层(hook跳过) 2.so层(需要定制安卓系统,AOSP)1.下面我们来看一个root监测在JAVA层的,现象2.反编译后,查找关键字3.hook跳过Java.perform(f…

P1364 医院设置——图最短路径问题(Floyd算法)

题目描述 设有一棵二叉树,如图:其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为 \(1\)。如上图中,若医院建在 \(1\) 处,则距离和 \(=4+12+2\times20+2…

本地部署deepseek后,部署可视化界面

首先下载doctor Docker: Accelerated Container Application Development 下载教程和上次教程相同,如果希望下载到其他盘可以使用命令下载 start /w "" "Docker Desktop Installer.exe" install --accept-license --installation-dir="D:\docker&qu…

9.7.3 损失函数

回忆一下,super(MaskedSoftmaxCELoss, self).forward就相当于直接计算损失函数,这是nn.Module的普遍做法 nn.CrossEntropyLoss的输入要求如下unweighted_loss的形状是(batch_size, num_steps),也就是对应每一个样本的每一步的直接的交叉熵损失

65R180-ASEMI逆变器专用MOS管65R180

65R180-ASEMI逆变器专用MOS管65R180编辑:ll 65R180-ASEMI逆变器专用MOS管65R180 型号:65R180 品牌:ASEMI 封装:TO-220F 最大漏源电流:21A 漏源击穿电压:650V 批号:最新 RDS(ON)Max:180mΩ 引脚数量:3 沟道类型:超洁MOS管 芯片尺寸:MIL 漏电流: 恢复时间:ns 芯片…