git生成提交流水

在 Git 中,生成提交流水也就是生成提交记录,你可以使用不同的方式和命令选项,根据需求来定制详细程度不同的提交流水。下面为你介绍常用的生成提交流水的方法:

1. 基础的提交记录查看

使用git log命令可以查看从最近到最早的提交记录,它会显示每个提交的详细信息。

bash
 
 
git log
 

输出信息一般包括:

  • 提交的哈希值(commit hash):这是一个唯一的标识符,用于定位提交。
  • 作者(Author):提交代码的人。
  • 提交日期(Date):提交发生的时间。
  • 提交说明(commit message):提交者对本次提交所做更改的描述。

2. 简洁格式的提交记录

如果你想要更简洁的输出,每行只显示提交哈希的前几位和提交说明,可以使用--oneline选项。

bash
 
 
git log --oneline
 

3. 查看指定范围的提交记录

通过日期范围

如果你想查看特定日期范围内的提交记录,可以使用--since--until选项。

bash
 
 
git log --since="2024-01-01" --until="2024-12-31"
 

上述命令会显示 2024 年 1 月 1 日到 2024 年 12 月 31 日之间的提交记录。

通过分支范围

查看从一个分支到另一个分支的提交记录,例如查看feature分支相对于main分支的提交:

bash
 
 
git log main..feature
 

4. 包含文件变更信息的提交记录

若你想了解每次提交具体修改了哪些文件,可以使用--name-only--name-status选项。

bash
 
 
git log --name-only
 

该命令会在每个提交记录后列出修改的文件名。

bash
 
 
git log --name-status
 

此命令除了列出文件名,还会显示文件的变更状态(如A表示新增,M表示修改,D表示删除)。

5. 可视化的提交记录

使用--graph选项可以以图形化的方式展示提交历史,有助于理解分支和合并的情况。

bash
 
 
git log --graph --oneline --decorate
 

--decorate选项会显示分支名和标签名。

6. 将提交记录输出到文件

如果你需要将提交记录保存下来,可以使用重定向符号>

bash
 
 
git log > commit_log.txt
 

这会把git log的输出保存到commit_log.txt文件中。

示例脚本

下面是一个简单的脚本示例,用于将指定日期范围的提交记录保存到文件中:
git-commit-log-script将指定日期范围的 Git 提交记录保存到文件的脚本
V1
 
 
生成 git_commit_log.sh

你可以将上述脚本保存为一个.sh文件,赋予执行权限后运行:

bash
 
 
chmod +x git_commit_log.sh
./git_commit_log.sh
 
 
 

#!/bin/bash

# 设置日期范围
START_DATE="2024-01-01"
END_DATE="2024-12-31"

# 生成提交记录并保存到文件
git log --since="$START_DATE" --until="$END_DATE" > commit_log.txt

echo "指定日期范围的提交记录已保存到 commit_log.txt"

 
可以把指定日期范围内的提交记录保存到commit_log.txt文件中。
 
 

Git 生成提交历史的几种方法

1. 查看基本提交历史

bash
 
复制
 
下载
git log

这会显示完整的提交历史,包括提交哈希、作者、日期和提交信息。

2. 简洁格式的提交历史

bash
 
复制
 
下载
git log --oneline

显示简化的提交历史,每行只包含提交哈希的前7位和提交信息。

3. 图形化提交历史

bash
 
复制
 
下载
git log --graph --oneline --decorate --all

这会显示分支和合并的可视化历史,非常适合查看复杂的分支结构。

4. 按作者筛选提交历史

bash
 
复制
 
下载
git log --author="用户名"

只显示特定作者的提交。

5. 按时间范围筛选

bash
 
复制
 
下载
git log --since="2023-01-01" --until="2023-12-31"

显示2023年全年的提交历史。

6. 按文件筛选

bash
 
复制
 
下载
git log -- path/to/file

只显示影响特定文件的提交。

7. 生成统计报告

bash
 
复制
 
下载
git log --stat

显示每次提交更改的文件统计信息。

8. 生成补丁格式

bash
 
复制
 
下载
git log -p

显示每次提交的详细差异。

9. 自定义格式输出

bash
 
复制
 
下载
git log --pretty=format:"%h - %an, %ar : %s"

自定义格式选项:

  • %h - 缩短的提交哈希

  • %an - 作者名字

  • %ar - 作者日期,相对格式

  • %s - 提交信息

10. 生成HTML格式的提交历史

bash
 
复制
 
下载
git log --pretty=format:'<li><a href="https://github.com/your/repo/commit/%H">%h</a> - %s (%an, %ar)</li>' > commits.html

11. 生成变更统计报告

bash
 
复制
 
下载
git log --numstat --pretty=format:"%H" > changes.csv

12. 生成JSON格式的提交历史

bash
 
复制
 
下载
git log --pretty=format:'{%n  "commit": "%H",%n  "author": "%an",%n  "date": "%ad",%n  "message": "%s"%n},' > log.json

13. 生成Markdown格式的变更日志

bash
 
复制
 
下载
git log --pretty=format:"- %s ([%h](https://github.com/your/repo/commit/%H))" --reverse > CHANGELOG.md

14. 查看特定分支的提交历史

bash
 
复制
 
下载
git log branch-name

15. 查看两个提交之间的差异

bash
 
复制
 
下载
git log commit1..commit2

提示

  • 添加 --no-merges 可以过滤掉合并提交

  • 使用 -n 参数限制显示数量,如 git log -n 5

  • 结合 grep 可以搜索提交信息,如 git log --grep="bug fix"

posted @ 2025-04-25 19:06  hanease  阅读(19)  评论(0)    收藏  举报