You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在执行git add后自动触发脚本生成Git提交信息?

Git Add后自动触发提交信息生成脚本的实现方案

由于Git原生没有post-add钩子,无法直接在git add执行后自动触发脚本,你可以通过**自定义Git别名替代原生git add**的方式实现需求,具体步骤如下:

1. 编写自定义触发脚本

创建一个可执行的Shell脚本(例如命名为git-auto-commit.sh),整合git add、Diff获取、AI生成提交信息、确认提交的完整流程:

#!/bin/bash

# 执行原生git add命令,传递所有输入参数
git add "$@"

# 检查git add是否执行成功
if [ $? -ne 0 ]; then
    exit 1
fi

# 获取暂存区的Diff内容
STAGED_DIFF=$(git diff --cached)

# 调用AI生成提交信息(替换为你的AI实现逻辑)
# 示例:假设你有一个处理Diff并返回提交信息的脚本/API调用
COMMIT_MESSAGE=$(your-ai-generator-script "$STAGED_DIFF")

# 展示生成的提交信息并询问用户确认
echo "=== 生成的提交信息 ==="
echo "$COMMIT_MESSAGE"
echo "====================="
read -p "确认使用该信息完成提交吗?(y/N): " USER_CONFIRM

# 根据用户选择执行提交或取消
if [[ "$USER_CONFIRM" =~ ^[Yy]$ ]]; then
    git commit -m "$COMMIT_MESSAGE"
    echo "提交已完成"
else
    echo "提交已取消,可手动执行git commit输入自定义信息"
fi

2. 配置Git全局别名

将自定义脚本绑定为git add的别名,覆盖原生命令:

# 替换为你的脚本实际绝对路径
git config --global alias.add '!bash /absolute/path/to/git-auto-commit.sh'

3. 脚本权限与注意事项

  • 给脚本添加执行权限:chmod +x /absolute/path/to/git-auto-commit.sh
  • 若需临时使用原生git add(不触发自动流程),可执行:git add --no-aliases
  • AI生成逻辑需自行实现:可以调用本地AI模型、第三方API,或集成现有工具完成提交信息生成

为什么pre-commit钩子不适用?

pre-commit钩子的触发时机是用户执行git commit之后、实际提交完成之前,无法满足你在git add后立即触发流程的需求,因此自定义别名是更匹配的方案。

内容的提问来源于stack exchange,提问作者p spectrum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:47:55