#commit-message #git-commit #git-hook #git #lint #git-repository #issue

mit-commit-message-lints

检查特定提交信息的正确性。设计用于提供 commit-msg 风格钩子的工具中

352 个稳定版本

新版本 5.13.22 2024 年 8 月 21 日
5.13.4 2024 年 7 月 31 日
5.12.191 2024 年 2 月 15 日
5.12.182 2023 年 12 月 28 日
3.100.2 2021 年 6 月 13 日

#2328 in 开发工具

Download history 314/week @ 2024-05-01 94/week @ 2024-05-08 183/week @ 2024-05-15 62/week @ 2024-05-22 249/week @ 2024-05-29 454/week @ 2024-06-05 365/week @ 2024-06-12 240/week @ 2024-06-19 162/week @ 2024-06-26 137/week @ 2024-07-03 303/week @ 2024-07-10 397/week @ 2024-07-17 1056/week @ 2024-07-24 884/week @ 2024-07-31 689/week @ 2024-08-07 916/week @ 2024-08-14

3,572 每月下载量
用于 7 个包

CC0 许可证

96KB
2K SLoC

git-mit

git-mit 是一套 git 钩子。它的目标是让配对编程、在提交中添加问题编号以及遵循良好的提交信息实践变得无需思考即可完成。

使用方法

准备仓库

此功能通过 git 钩子实现,因此您需要将这些钩子放入您正在使用的 git 仓库中。

git init .
git mit-install

此功能通过在您的仓库钩子目录中创建符号链接来实现。您可以通过将它们添加到您的 init 模板 来自动完成此操作。这是 git 在您运行 git init 时用于创建 .git 目录的模板。

git mit-install --scope=global

您也可以在现有仓库上运行此操作,以设置已经检出仓库。您可以使用此命令从主目录递归地重新初始化所有仓库。

find "$HOME" -type d -name .git -exec sh -c 'git init "$1"/..' -- {} \;

代码检查列表

git mit-config lint available
╭───────────────────────────────────┬──────────╮
│ Lint                              ┆ Status   │
╞═══════════════════════════════════╪══════════╡
│ duplicated-trailers               ┆ enabled  │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ pivotal-tracker-id-missing        ┆ disabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ jira-issue-key-missing            ┆ disabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ github-id-missing                 ┆ disabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ subject-not-separated-from-body   ┆ enabled  │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ subject-longer-than-72-characters ┆ enabled  │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ subject-line-not-capitalized      ┆ disabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ subject-line-ends-with-period     ┆ disabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ body-wider-than-72-characters     ┆ enabled  │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ not-conventional-commit           ┆ disabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ not-emoji-log                     ┆ disabled │
╰───────────────────────────────────┴──────────╯

默认启用确保 git 正确工作的代码检查

git mit-config lint enabled
╭───────────────────────────────────┬─────────╮
│ Lint                              ┆ Status  │
╞═══════════════════════════════════╪═════════╡
│ duplicated-trailers               ┆ enabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ subject-not-separated-from-body   ┆ enabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ subject-longer-than-72-characters ┆ enabled │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ body-wider-than-72-characters     ┆ enabled │
╰───────────────────────────────────┴─────────╯

您可以在 代码检查页面 上阅读更多关于此内容的详细信息,包括示例。

集中化代码检查配置

您可以在仓库根目录中添加一个 .git-mit.toml.git-mit.toml.dist,我们将读取它并尝试启用正确的代码检查(.git-mit.toml 优先)。

我建议您提交 .git-mit.toml.dist 并将 .git-mit.toml 添加到您的 .gitignore 以允许轻松本地重新配置

例如

[mit.lint]
"pivotal-tracker-id-missing" = true

使用这种方式,您可以启用 lint

git mit-config lint status pivotal-tracker-id-missing
╭────────────────────────────┬─────────╮
│ Lint                       ┆ Status  │
╞════════════════════════════╪═════════╡
│ pivotal-tracker-id-missing ┆ enabled │
╰────────────────────────────┴─────────╯

您可以在配置页面上了解更多关于此信息

附加问题编号

在项目中,通过将您所提交的提交链接回待办事项中的问题,帮助您的同事是一个很好的做法。但是,记住这些可能会有些繁琐,所以这里有一个命令可以减少输入量。

比如说,您刚刚为 Pivotal Tracker ID [#12321513] 创建了这个出色的 README.md

# The Best Readme

This is the best readme

如果您运行

git mit-relates-to "[#12321513]"

下次提交时

git add README.md
git mit bt
git commit -m "Wrote a great README"

提交消息将包含该 ID

git show --pretty='format:author: [%an %ae] signed-by: [%GS] 
---
%B' -q
author: [Billie Thompson [email protected]] signed-by: [] 
---
Wrote a great README

Relates-to: [#12321513]

关于此的更多信息,请参阅相关页面

设置作者和共同作者

配对编程是一种很好的编程方式,而且当您给予信用时,这甚至更好,您可以使用 mit 命令给予信用

通过在 $HOME/.config/git-mit/mit.toml 创建配置来配置您的作者,如下例所示

git-mit-config mit example
[ae]
name = "Anyone Else"
email = "[email protected]"

[bt]
name = "Billie Thompson"
email = "[email protected]"
signingkey = "0A46826A"

[se]
name = "Someone Else"
email = "[email protected]"

然后

git mit ae bt se

然后您提交时,将设置您选择的作者首字母缩写的 Co-authored-by 尾部注释。

echo "# Hello, world!" > README.md

git add .
git commit --message="Initial Commit" --quiet
git show --pretty='format:author: [%an %ae] signed-by: [%GS] 
---
%B' -q
author: [Anyone Else [email protected]] signed-by: [] 
---
Initial Commit

Co-authored-by: Billie Thompson <[email protected]>
Co-authored-by: Someone Else <[email protected]>
Relates-to: [#12321513]

请注意,“相关”标签在这里,尽管我们没有触发它?这是从页面上的示例中来的,git-mit 会记住您的作者和票据号码 60 分钟

有关此信息的更多信息,请参阅mit 页面

安装

您可以使用 brew 安装此软件!这是首选的安装方法。

brew install PurpleBooth/repo/git-mit

您也可以使用 Cargo,尽管这不会安装补全

cargo install git-mit-config
cargo install git-mit
cargo install git-mit-install
cargo install mit-commit-msg
cargo install mit-pre-commit
cargo install mit-prepare-commit-msg

您还可以下载最新的版本并运行它。

补全

我们为 fishzshbash 生成补全。它们随 homebrew 包一起安装。您不需要做任何事情来激活它们。

您还可以从发布页面手动下载它们。

文档

常见任务

使用方法

依赖

~21–37MB
~640K SLoC