English | 简体中文
A tool for analyzing git commit logs and generating daily, weekly, or custom work reports.
This is a client tool, so you need to download the program to use it. See: The Latest Release to download.
Note: This tool requires Git to be installed and properly configured in your system's PATH. Please make sure Git is installed before running the program.
Create and fill in your configuration file, and then run the program to get your work report.
You need to create a config.json
at the same folder with the program, and write the content in the following format.
{
"lang": "en",
"authors": ["my-name"],
"dateRange": ["2025-04-01", "2025-05-01"],
"repos": ["/path/to/my-project-folder"],
"format": {
"my-project-folder": "My Awesome Project"
},
"includes": ["feat", "fix", "docs", "style", "refactor", "test", "chore"],
"excludes": ["typo", "backup"]
}
NOTE: Please configure the repos path according to your operating system. For example:
- On Windows, you must use backslashes (), e.g.,
D:\\path\\to\\folder-name
- On macOS, use forward slashes (/), e.g.,
/path/to/folder-name
The configuration items are described as follows:
key | type | description |
---|---|---|
lang | string | Set program default language, support en (English, default) and zh (Simplified Chinese). |
authors | string[] | Filter commit authors. Supports multiple author names, useful if you use different names in different repositories. |
dateRange | [string, string] | Specify [start date, end date]. Supports valid date formats. The statistics cover from 00:00:00 of the start date to 23:59:59 of the end date. If not set, defaults to the current day. |
repos | string[] | The Git repository folders on your computer. Please switch to the branch you want to analyze in advance. |
format | { [key: string]: string } | Format your folder names as project names. |
includes | string[] | Commit message prefixes to include in the statistics. |
excludes | string[] | Exclude commit messages containing these keywords from the results. |
Among them, authors
/ includes
/ excludes
will be created as regular expressions to match data.
The report file will be generated in markdown
syntax (probably the most common format for developer?) and saved as a file in .txt
format (probably the most compatible format?).
The project name will be classified as the second-level title, and 7 types of commit prefixes will be classified as the third-level title:
type | description |
---|---|
feat | Features |
fix | Bug Fixes |
docs | Documentation |
style | Optimized Style |
refactor | Refactored |
test | Test Cases |
chore | Chores |
You can click Commit message and Change log writing guide to learn how to standardize the git commit.
Please refer to CHANGELOG for details.
MIT License © 2022 chengpeiquan