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 +0000

    Initial commit

src/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.md

b1c2d3e4f5 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.java

a1b2c3d4e5 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

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

相关推荐

  1. git列出提交记录文件路径

    2024-07-13 05:44:01       25 阅读
  2. Git】修改提交记录日期和提交信息

    2024-07-13 05:44:01       27 阅读
  3. git 提交文件压缩机制

    2024-07-13 05:44:01       47 阅读
  4. Git【撤销远程提交记录

    2024-07-13 05:44:01       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 05:44:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 05:44:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 05:44:01       62 阅读
  4. Python语言-面向对象

    2024-07-13 05:44:01       72 阅读

热门阅读

  1. 关于对于短视频的认识-复盘与再次复盘

    2024-07-13 05:44:01       25 阅读
  2. sqlalchemy反射视图

    2024-07-13 05:44:01       22 阅读
  3. vue 组件里面的方法修改外面的数据

    2024-07-13 05:44:01       26 阅读
  4. 使用Trie树高亮关键词

    2024-07-13 05:44:01       26 阅读
  5. qt 的布局

    2024-07-13 05:44:01       29 阅读
  6. 《每天十分钟》-红宝书第4版-函数

    2024-07-13 05:44:01       25 阅读
  7. 【Scrapy】Scrapy 中间件等级设置规则

    2024-07-13 05:44:01       25 阅读
  8. 智能运维提升企业长期安全防御能力

    2024-07-13 05:44:01       24 阅读
  9. Linux上如何安装ffmpeg视频处理软件

    2024-07-13 05:44:01       25 阅读