#git-commit #commit-message #template #git #conventional-commits

bin+lib inkan

包含模板和工具的 git 命令行界面

5 个版本

0.0.3 2023年6月5日
0.0.2 2023年4月24日
0.0.2-alpha.12023年4月23日
0.0.1 2023年4月23日

2917命令行工具

每月下载 44

MIT 许可证

165KB
4K SLoC

crates.io Main branch tests license

🖋 inkan

使用此 CLI 通过预提供的模板以更少的努力格式化您的 git 提交信息!🤩

提供了两个默认模板

  1. 简单提交模板

  2. 约定提交模板

您还可以通过遵循 自定义模板指南 创建您自己的自定义模板。

简单提交模板

inkan config set default
-  ✨ feat        Adds new functionality.
-  🐛 bug         Fix that resolves an unintended issue.
-  🧪 test        Improves or adds existing tests related to the code base.
-  🧹 refactor    Improvement of code/structure without adding new functionality.
- 📖 docs         Change or update to documentation (i.e README's, code comments, etc).
-  📦 deps        Version update or migration to a new dependency.
-  ⚠️ break        Breaking change that may break a downstream application or service.
-  📋 chore       Regular code maintenance.
-  🏭 ci          Changes to CI configuration files and scripts.

提交示例格式

  • [{ticket_num}]{message}

模板上下文

  • ticket_num 与分支相关的票据/问题编号。
  • message 提交信息。

约定提交标准模板

inkan config set conventional
- ✨ feat        Adds new functionality.
- ⛑ fix         Fix that resolves an unintended issue (i.e. bug).
- 🧪 test        Improves or adds existing tests related to the code base.
- 🧹 refactor    Improvement of code/structure without adding new functionality.
- 📖 docs        Change or update to documentation (i.e README's, code comments, etc).
- 🔨 build       Changes that affect the build system or external dependencies.
- 📋 chore       Regular code maintenance.
- 🏭 ci          Changes to CI configuration files and scripts.
- 🏎 perf        Improvement of code performance (i.e. speed, memory, etc).
- 🕺 style       Formatting updates, lint fixes, etc. (i.e. missing semi colons).

提交格式

  • {type}({scope}): {message}

提交模板上下文

  • ticket_num 与分支相关的票据/问题编号。
  • message 主题信息。
  • scope 提交相关的代码库部分的简短描述。

⏳ 安装二进制文件

🦀 Cargo

通过 Cargo 安装最新版本。

cargo install inkan
🍏 MacOS

Homebrew 即将推出 🤞

安装最新版本

curl -sS https://raw.githubusercontent.com/xsv24/inkan/main/scripts/install.sh | sh

根据您的配置,您可能需要以 sudo 运行脚本。

curl -sS https://raw.githubusercontent.com/xsv24/inkan/main/scripts/install.sh | sudo sh -s - -b /usr/local/bin
🐧 Linux

包管理器即将推出 🤞

安装最新版本

curl -sS https://raw.githubusercontent.com/xsv24/inkan/main/scripts/install.sh | sh
🪟 Windows

即将推出 🤞


🏎️💨 入门

inkan --help
# Checkout a new branch & add optional context params.
inkan checkout fix-parser
  --ticket TICKET-123 \
  --scope parser \
  --link "http://ticket-manager/TICKET-123"

# Select a registered config containing templates to use.
inkan config set

# View currently available templates on chosen config.
inkan templates

# Commit some changes.
inkan commit bug -m "Fix up parser"
inkan commit chore

🎟️ 检出命令

创建新分支或检出现有分支,并附加以下可选上下文参数,以便在未来的提交模板中使用。

  • ticket_num 与分支相关的问题编号。
  • link 与相关问题的链接。
  • scope 提交相关的代码库部分的简短描述。

当您准备好 提交 您的更改时,任何提供的上下文参数(即 ticket_number)将自动注入到每个提交信息中!😄 它通过简单的模板字符串注入来完成此操作。

示例

inkan checkout my-branch --ticket TICKET-123

inkan checkout my-branch \
  -t TICKET-123 \
  --scope parser \
  --link "http://ticket-manager/TICKET-123"

您的票据/问题可能只有一个相关的分支。在这种情况下,您可以使用以下简写 👌

inkan checkout TICKET-123

结账命令还使用了一个简单的可自定义模板,可以在模板配置中配置,默认格式如下。

branch:
  content: {branch_name}-{ticket_num}

🔗 上下文命令

创建或更新与当前已签出分支链接的上下文参数。

  • ticket_num 与分支相关的问题编号。
  • link 与相关问题的链接。
  • scope 提交相关的代码库部分的简短描述。

如果您忘记通过 inkan 结账命令 添加上下文,或者想要更新未来提交的上下文,这将非常有用。

当您准备好 提交 您的更改时,任何提供的上下文参数(即 ticket_number)将自动注入到每个提交信息中!😄 它通过简单的模板字符串注入来完成此操作。

inkan context \
  --ticket TICKET-123 \
  --scope parser \
  --link "http://ticket-manager/TICKET-123"

🚀 提交命令

提交任何已暂存的更改,并通过将 结账上下文 命令中设置的任何上下文参数注入到所选的 模板(例如 bug)中来构建一个可编辑的提交信息。

inkan commit bug

示例模板

[{ticket_num}] 🐛 {message}[TICKET-123] 🐛 Fix


☑ 模板命令

列出当前可用的提交模板。要添加自己的模板,请参阅自定义提交模板指南

inkan templates

- bug | Fix that resolves an unintended issue
- ...

⚙️ 配置

最初将 默认 模板设置为活动状态,但您可以通过 config set 命令在提供的配置和任何添加的自定义模板之间切换。

inkan config set

ℹ️ 不建议修改默认模板文件,因为它们可能在新的版本中被替换/更新。

相反,复制并粘贴所需的默认模板,将其保存在某个位置,并按持久化配置指南中所示将其添加到CLI。

自定义模板

创建自己的模板可以通过创建自己的配置文件 .inkan.yml 来完成。

以下是一个名为 custom 的自定义模板的示例

version: 1
commit:
  templates:
    custom:
      description: My custom commit template 🎸
      content: |
        {ticket_num} 🤘 {message}

您可以通过以下方式之一将自定义配置/模板提供给CLI

  • 通过 --config 选项提供配置文件路径。
  • 在您的git仓库根目录中创建一个 .inkan.yml 配置文件。
  • 使用通过 config add 子命令之前添加/链接的配置文件,如持久化配置指南中所示。

持久化配置

通过提供您的配置文件路径和参考名称来持久化/链接您的配置文件。

inkan config add $CONFIG_NAME $CONFIG_PATH

您可以通过 set 命令添加多个配置文件并在它们之间切换。

inkan config set $CONFIG_NAME

# Select prompt for available configurations
inkan config set 

> ? Configuration:  
  ➜ default
    conventional
    custom

要确保您的模板已加载,只需运行以下命令查看当前配置的模板列表即可。

inkan templates

- custom | My custom commit template 🎸
- ...

然后,当您准备好提交更改时,使用您的自定义模板,您就完成了! 🪂

inkan commit custom \
 --ticket TICKET-123 \
 --message "Dang!"

[TICKET-123] 🤘 Dang!

TODO

  • 提示提交信息、链接等
  • [] 清理配置模板
  • [] PR模板带有复选框自动化
  • [] Shell完成脚本
  • [] 其他命令的提示

依赖项

~31–44MB
~672K SLoC