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

git列出提交记录的文件路径

一、如何列出某次提交记录中修改过/新增的文件?

方法1:使用 git diff-tree 命令来查看某个提交记录中修改过/新增的文件。具体来说,你可以使用以下命令:

git diff-tree --no-commit-id --name-only -r <commit-hash>

命令解释

  • git diff-tree:比较提交记录与其父提交记录的差异。
  • --no-commit-id:不显示提交的哈希值。
  • --name-only:仅显示文件名。
  • -r:递归显示所有文件的差异。

示例

假设你想查看提交记录 a1b2c3d4 中修改过的文件,可以使用以下命令:

git diff-tree --no-commit-id --name-only -r a1b2c3d4

示例输出

src/main/java/com/example/App.java
src/main/resources/application.properties
README.md

这种方式只会列出该次提交中实际修改过的文件,而不是所有文件。

方法2:详细的查看文件变更

如果你还想查看每个文件具体的修改内容,可以使用 git show 命令:

git show --name-only <commit-hash>

这将显示提交记录的详细信息,包括提交信息、作者、日期以及文件的修改内容。

示例

git show --name-only a1b2c3d4

输出示例

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0
Author: Your Name <your.email@example.com>
Date:   Mon Jul 1 12:34:56 2023 +0000Initial commitsrc/main/java/com/example/App.java
src/main/resources/application.properties
README.md

二、如何列出多次提交记录中修改过/新增的文件?

如果你想查看多个提交记录中修改的文件,可以使用 git log 结合 git diff,或者直接使用 git log--name-only 选项。以下是几种方法来查看多个提交记录中修改的文件。

方法1:使用 git log--name-only 选项

你可以使用 git log --name-only 来列出多个提交记录中修改的文件。这个命令将显示每个提交记录及其修改的文件。

git log --name-only --oneline

示例

git log --name-only --oneline

示例输出

a1b2c3d4e5 Initial commit
src/main/java/com/example/App.java
src/main/resources/application.properties
README.mdb1c2d3e4f5 Added new feature
src/main/java/com/example/Feature.java

方法2(推荐):使用 git diff 比较多个提交记录

如果你想查看特定范围的提交记录中修改的文件,可以使用 git diff 命令。例如,查看两个提交记录之间的差异:时间小到大,左开右闭

git diff --name-only <commit-hash1> <commit-hash2>

示例

假设你想查看从提交 a1b2c3d4b1c2d3e4 之间修改的文件:

git diff --name-only a1b2c3d4 b1c2d3e4

示例输出

src/main/java/com/example/App.java
src/main/java/com/example/Feature.java
src/main/resources/application.properties
README.md

方法3:查看最近的N次提交中的修改文件

如果你想查看最近的N次提交中的修改文件,可以使用以下命令:

git log -n <N> --name-only --oneline

示例

查看最近的5次提交中的修改文件:

git log -n 5 --name-only --oneline

示例输出

b1c2d3e4f5 Added new feature
src/main/java/com/example/Feature.javaa1b2c3d4e5 Initial commit
src/main/java/com/example/App.java
src/main/resources/application.properties
README.md

方法4:过滤唯一的文件列表

如果你想过滤出一段时间内所有唯一修改过的文件,可以结合使用 git logsortuniq 命令。例如,查看最近的10次提交中的唯一修改文件:

由于有uniq命令,需要在 git bash中执行

git log -n 10 --name-only --pretty=format: | sort | uniq

示例

查看最近的10次提交中的唯一修改文件:

git log -n 10 --name-only --pretty=format: | sort | uniq

示例输出

README.md
src/main/java/com/example/App.java
src/main/java/com/example/Feature.java
src/main/resources/application.properties

这些方法可以帮助你查看多个提交记录中修改的文件,选择适合你需求的方法即可。

http://www.lryc.cn/news/400503.html

相关文章:

  • 微信小程序密码 显示隐藏 真机兼容问题
  • C# 中,使用 LINQ 示例 备忘
  • GaussDB DWS 详解
  • 【256 Days】我的创作纪念日
  • 3D云渲染工具对决:Maya与Blender的性能和功能深度比较
  • spring.factories详解
  • 从Docker Hub 拉取镜像一直失败超时?这些解决方案帮你解决烦恼
  • 【pbootcms】新环境搭建环境安装时发生错误
  • C语言之qsort函数
  • R 数据重塑
  • opencascade AIS_InteractiveContext源码学习8 trihedron display attributes
  • 【云岚到家】-day05-6-项目迁移-门户-CMS
  • linux彻底卸载docker
  • linux高级编程(网络)(www,http,URL)
  • Perl 语言开发(十三):网络编程
  • Leetcode算法题(移除链表中的元素)
  • 浅谈网络安全防守:从被动应对到主动管理的转变
  • CentOS7仅安装部署MySQL80客户端
  • 力扣经典题目之->移除值为val元素的讲解,的实现与讲解
  • pico+unity3d项目配置
  • python条件
  • 华为USG6000V防火墙v1
  • Apache访问机制配置
  • 在word中删除endnote参考文献之间的空行
  • 【详解】Spring Cloud概述
  • 板级调试小助手(3)基于PYNQ的OLED视频显示
  • git批量删除本地包含某字符串的特定分支
  • Android中RecyclerView使用详解(一)
  • 坑3.上传图片(阿里云空间,oss验证)(未验证)
  • 注册登录后上传文件到本地数据库项目