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

Git GUI下pre-commit钩子生成pdoc文档未同步提交如何解决?

核心问题原因

你当前的pre-commit钩子仅完成了pdoc文档生成操作,生成后的HTML文件变更没有被加入Git暂存区,Git默认不会将未暂存的内容纳入本次提交,才会出现文档更新需要后续amend补入的问题。Git的pre-commit钩子执行时机始终在提交对象正式创建前,和GUI客户端何时触发git commit命令无关。

最优解决方案

直接修改pre-commit钩子,在生成文档后自动暂存指定的文档目录即可,操作对所有Git客户端(包括TortoiseGit、Git Extensions等GUI工具)均生效。

具体的pre-commit脚本示例(存放在项目.git/hooks/pre-commit路径):

#!/bin/sh
# 替换为你实际的pdoc生成命令,调整输出目录和Python包名
pdoc --output-dir ./docs/html your_python_package/
# 自动暂存文档目录的所有变更,替换为你自己的文档输出路径
git add ./docs/html/
# 正常退出,继续后续提交流程
exit 0

配置注意事项:

  • Linux/macOS环境需要给钩子文件添加可执行权限,执行命令:chmod +x .git/hooks/pre-commit
  • Windows环境无需额外权限配置,确保脚本可以正常执行即可
  • 配置完成后无需调整GUI客户端的任何操作流程,正常填写提交消息点提交即可,生成的文档变更会自动纳入本次提交
可选适配方案

如果你使用了pre-commit社区框架管理钩子,可以直接在.pre-commit-config.yaml中添加本地钩子配置,示例如下:

repos:
  - repo: local
    hooks:
      - id: auto-generate-pdoc
        name: Auto generate pdoc HTML docs
        entry: bash -c 'pdoc --output-dir ./docs/html your_python_package/ && git add ./docs/html/'
        language: system
        pass_filenames: false
        stages: [commit]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:45:01