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

Git GUI触发prepare-commit-msg钩子失败:git: 'hook'不是git命令

Git GUI钩子报错解决指南

核心问题解答

不需要必须定义prepare-commit-msg钩子,Git的所有钩子都是可选功能,默认状态下没有任何强制启用的钩子要求。

报错原因

你使用的Git版本是2.34.1,而git hook run命令是Git 2.37版本才正式引入的新特性。Git GUI调用了这个你的Git版本不支持的命令,导致出现git: 'hook' is not a git command的错误。

解决方法

方法1:升级Git到兼容版本

这是最彻底的解决方案,步骤如下:

  • 卸载旧版本Git:sudo apt remove git
  • 添加Git官方PPA源:sudo add-apt-repository ppa:git-core/ppa
  • 更新系统包列表并安装新版本Git:sudo apt update && sudo apt install git
  • 验证升级成功:git --version,确认版本≥2.37

方法2:修改Git GUI脚本适配旧版本Git

如果不想升级Git,可以手动修改Git GUI的钩子执行逻辑:

  • 打开Git GUI的commit处理脚本,路径通常为/usr/lib/git-core/git-gui/lib/commit.tcl
  • 搜索包含git hook run的代码段,将其替换为旧版本Git兼容的钩子执行逻辑:
    set hook [file join [gitdir] hooks prepare-commit-msg]
    if {[file executable $hook]} {
        exec $hook $PREPARE_COMMIT_MSG [current_branch]
    }
    
  • 保存文件后重启Git GUI即可

方法3:临时应急方案

快速绕过报错,创建一个空的可执行钩子文件:

  • 进入你的Git仓库目录:cd /path/to/your/repository
  • 创建空的钩子文件:touch .git/hooks/prepare-commit-msg
  • 添加执行权限:chmod +x .git/hooks/prepare-commit-msg
  • 这个空钩子会被Git GUI调用但不执行任何操作,可暂时解决报错问题

内容的提问来源于stack exchange,提问作者Thomas Seehofchen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:22:34