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

如何让pre-commit钩子在git commit时自动同步未修改文件的版本?

解决pre-commit钩子自动更新未暂存文件的问题

要让git commit时自动触发钩子更新那些未修改的Python文件,调整.pre-commit-config.yaml配置即可:

  • 给目标钩子添加files配置项,明确指定所有需要检查和更新的文件路径或匹配规则。比如你的场景里,要包含存储版本的CMakeLists.txt,以及需要同步版本的Python文件:

    -   repo: https://github.com/degauden/euclid-pipeline-hooks.git
        rev: 1.0.0
        hooks:
        -   id: dependency-version-fixer
            always_run: true
            files: ^(CMakeLists.txt|SLE_IAL_Pipelines/auxdir/.*/PkgDef_.*\.py)$
    

    这里的正则表达式匹配了CMakeLists.txt和指定目录下的所有PkgDef_*.py文件,确保pre-commit会把这些文件全部传递给钩子,不管它们是否处于暂存状态。

  • 逻辑说明:always_run: true确保钩子每次提交都会执行,但默认只会传递已修改的文件;加上files指定所有目标文件后,pre-commit会把这些文件全传给钩子,钩子就能检测到版本变化并自动更新对应的Python文件。

操作后测试:修改CMakeLists.txt里的版本后执行git commit,钩子会处理所有指定文件并更新Python文件,之后你需要重新暂存被修改的Python文件,再执行git commit完成提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:35:27