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
相关产品推荐
相关产品推荐

