【git】diff git统计某两个提交记录之间的所有改动文件

本文介绍了如何使用git diff和git log命令来查看和统计代码改动。通过设置git config core.quotepath false解决路径中文显示问题,利用git log获取提交ID,然后用git diff配合--numstat、--shortstat等参数查看不同提交间的文件改动情况,进行项目增量更新。此外,还展示了--stat和--name-status等选项的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git diff 比较命令——查看文件改动

    语法
    描述
    git diff [<options>] [--] [<path>…​] —— 工作区与暂存区比较
    git diff [<options>] <commit> [--] [<path>…​] —— 工作区与提交比较
    git diff [<options>] --cached [<commit>] [--][<path>…​] —— 暂存区与提交比较
    git diff [<options>] <commit> <commit> [--] [<path>…​] —— 提交与提交比较
    -U<n> 选项——显示 n 行上下文
    --output=<file> 选项——输出差异文件
    --shortstat 选项——仅显示修改文件的总数
    --name-only 选项——仅显示已更改文件的名称
    --name-status 选项——仅显示已更改文件的名称和状态
    -W 选项——显示完整的函数作为上下文
    -- <path> —— 限定比较文件
————————————————

想要统计某两次提交记录之间的所有改动文件,方便对线上项目进行增量更新。
设置quotepath为false

git config --global core.quotepath false

不然路径中存在中文时会显示为“\126\326\”这样的数字
在这里插入图片描述

获取提交记录的id

可以通过git log命令来查看,如下:

git log --stat
在这里插入图片描述

其中,commit后面的就是提交记录id

使用diff命令来列出两个版本之间的改动文件

git diff --numstat 674875f4bd91407408d19529e6757f4f3b0e3421 3043474c82dddae0d8795c9f1b732e90804b1cb0
在这里插入图片描述
参数说明

numstat表示以表格的形式展示改动文件,并且文件路径是完整路径

numstat后面接的是需要对比的两次提交记录的id,前后顺序没有关系

使用diff命令来统计两个版本之间的改动文件

git diff --shortstat 674875f4bd91407408d19529e6757f4f3b0e3421 3043474c82dddae0d8795c9f1b732e90804b1cb0
在这里插入图片描述

numstat相关的几个参数

git diff与git log后面都可以使用的几个常用参数

(1)stat

会展示改动文件的路径并统计改动文件个数,但是路径太长时会省略一部分路径,展示样式如下:

git diff --stat 674875f4bd91407408d19529e6757f4f3b0e3421 3043474c82dddae0d8795c9f1b732e90804b1cb0

在这里插入图片描述
(2)shortstat

会统计文件的改动情况,但是不会展示改动文件的路径,本文中已经有样例。

(3)numstat

以表格的形式展示改动文件的列表,会展示文件的完整路径,本文中已经有样例。

https://www.codenong.com/42458005/

git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $head_commit_id $older_commit_id | xargs tar -cf project.tar -T -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值