日报生成流程指南
概述
本文档提供了基于 Git 提交记录自动生成工作日报的标准流程,帮助开发者快速整理和汇总每日工作内容。
🚀 快速生成日报
核心命令
bash
# 查看今天的提交记录(最核心的命令)
git log --since="1 day ago"
# 备用命令(如果上面命令没有结果)
git log --since="3 days ago"
完整流程
1. 查看提交记录
bash
# 查看最近一天的提交记录
git log --since="1 day ago"
命令解释:
--since="1 day ago"
: 查看最近一天的提交
2. 分析当前工作内容
bash
## 📝 日报模板
基于提交记录生成的日报应包含以下结构:
```markdown
## 工作日报 - YYYY年MM月DD日
### 📋 今日工作概述
[根据提交记录总结主要工作方向]
### 🚀 主要完成工作
#### 1. [功能模块1]
- **[具体功能点1]** - [提交信息解读]
- **[具体功能点2]** - [提交信息解读]
#### 2. [功能模块2]
- **[具体功能点1]** - [提交信息解读]
### 🎯 当前进展
[项目整体进度描述]
### 📅 明日计划
[基于当前工作内容规划明日任务]
🛠 实用技巧
1. 提交信息分类
根据提交信息的前缀进行分类:
feat
: 新功能开发fix
: 问题修复refactor
: 代码重构docs
: 文档更新style
: 样式调整test
: 测试相关chore
: 构建/工具相关
📊 日报生成步骤
Step 1: 收集基础信息
bash
# 1. 查看提交记录
git log --since="1 day ago"
Step 2: 分析工作内容
在 Git 里想看「谁改了什么」,最常用的是一组 diff 命令,按场景使用,日报主要是显示今天做了什么,相比较昨天做了什么,以下是参看diff命令:
工作区 ↔ 暂存区
bashgit diff # 默认就是工作区 vs 暂存区
工作区 ↔ 任意提交(HEAD、分支、tag、commit-id)
bashgit diff HEAD~2 # 工作区 vs 倒数第2次提交 git diff v1.0.0 # 工作区 vs tag v1.0.0
暂存区 ↔ 任意提交
bashgit diff --staged # 同 --cached git diff --cached HEAD~1 # 暂存区 vs 上一次提交
任意两次提交之间的差异
bashgit diff 3a2b1c..f4e5d6 git diff HEAD~3..HEAD~1 # 最近第3次到第1次之间的变化
只看某个文件或目录
bashgit diff HEAD~2 -- src/main.py
统计改了多少行(不显示具体 diff)
bashgit diff --stat git diff --shortstat
图形化 / 外部工具
bashgit difftool -d HEAD~1 # 用 meld/beyond compare 等打开 git difftool --dir-diff v1.0
比较远程分支
bashgit diff origin/main..main
比较 stash
bashgit diff stash@{0}
一句话记忆:
- 没参数就是「工作区 vs 暂存区」;
--staged/--cached
就是「暂存区 vs HEAD」;- 后面跟两个点/空格就是「A vs B」。
Step 3: 分析工作内容
- 按模块分类: 根据提交信息中的模块标识(如 order、cart、user 等)进行分类
- 按类型分类: 根据提交类型(feat、fix、refactor 等)进行分类
- 提取关键信息: 从提交信息中提取具体的功能点和改进点
Step 4: 编写日报
- 概述部分: 总结今日主要工作方向
- 详细内容: 按模块和功能点详细描述
- 进展评估: 评估项目整体进度
- 明日规划: 基于当前进度规划后续工作
🔍 常见问题处理
Q: 没有今天的提交记录怎么办?
bash
# 查看最近几天的提交
git log --since="3 days ago" --oneline
# 查看工作区的修改
git status
git diff --name-only
Q: 提交信息不够详细怎么办?
bash
# 查看提交的详细变更
git show [commit-hash]
# 查看涉及的文件
git log --since="1 day ago" --name-only
Q: 如何处理多个分支的工作?
bash
# 查看所有分支的提交
git log --all --since="1 day ago" --pretty=format:"%h - %an, %ar : %s" -20
# 查看特定分支的提交
git log [branch-name] --since="1 day ago" --oneline
📋 日报质量检查清单
- [ ] 提交记录已完整收集
- [ ] 工作内容按模块分类清晰
- [ ] 技术改进点已突出
- [ ] 项目进展评估准确
- [ ] 明日计划具体可行
- [ ] 格式规范,易于阅读
🎯 最佳实践
- 每日定时生成: 建议在工作结束前生成日报
- 提交信息规范: 使用规范的提交信息格式,便于日报生成
- 及时记录: 重要的技术决策和问题解决过程要及时记录
- 数据备份: 定期备份日报,便于周报和月报的生成
🔗 相关命令速查
bash
# 基础查看命令
git log --since="1 day ago" --pretty=format:"%h - %an, %ar : %s" -20
git status
git branch --show-current
# 详细分析命令
git log --since="1 day ago" --stat
git log --since="1 day ago" --name-only
git show [commit-hash]
# 时间范围命令
git log --since="today" --oneline
git log --since="yesterday" --until="today" --oneline
git log --since="1 week ago" --oneline