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

如何实现每次Git提交自动递增版本号?

实现Git提交自动递增SemVer版本号的方案

一、使用专用版本管理工具(推荐)

bump2version

这是一款轻量的SemVer版本管理工具,能自动处理版本号递增、提交变更和打标签,完全匹配你的需求:

  1. 安装

    pip install bump2version
    
  2. 初始化配置
    在项目根目录创建.bumpversion.cfg文件,内容如下:

    [bumpversion]
    current_version = 1.0.0
    commit = True
    tag = True
    tag_name = v{new_version}
    
    [bumpversion:file:VERSION]
    

    该配置会让工具自动提交版本变更,以vX.Y.Z格式打标签,同时通过根目录的VERSION文件存储当前版本。

  3. 日常使用

    • 自动递增patch位:配合Git钩子(下文介绍)或直接执行命令后提交:
      bump2version patch
      
    • 手动递增minor位:
      bump2version minor
      
    • 手动递增major位:
      bump2version major
      

    执行命令后,工具会自动完成版本更新、提交变更和打标签操作,无需手动修改文件。

standard-version

如果你的团队遵循Conventional Commits规范(提交信息采用feat:、fix:等固定前缀),这款工具会根据提交内容自动判断版本递增位,同时生成CHANGELOG:

# 安装
npm install -g standard-version

# 初始版本打标签
standard-version --first-release

# 自动根据提交信息递增版本
standard-version
# 手动指定递增major/minor
standard-version --release-as major
standard-version --release-as minor

二、手动用Git钩子实现(无需额外工具)

若不想依赖外部工具,可通过Git的pre-commit钩子实现自动递增patch位:

  1. 创建钩子文件
    在项目的.git/hooks目录下创建pre-commit文件,内容如下:

    #!/bin/bash
    # 确保VERSION文件存在,初始内容设为1.0.0
    if [ ! -f VERSION ]; then
        echo "1.0.0" > VERSION
    fi
    
    # 读取当前版本并拆分
    VERSION=$(cat VERSION)
    MAJOR=$(echo "$VERSION" | cut -d. -f1)
    MINOR=$(echo "$VERSION" | cut -d. -f2)
    PATCH=$(echo "$VERSION" | cut -d. -f3)
    
    # 递增patch位
    NEW_PATCH=$((PATCH + 1))
    NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
    
    # 更新VERSION文件并加入提交
    echo "$NEW_VERSION" > VERSION
    git add VERSION
    
  2. 添加执行权限

    chmod +x .git/hooks/pre-commit
    

    此后每次执行git commit时,钩子会自动递增patch位并将版本变更加入提交。手动修改major/minor位时,直接编辑VERSION文件后提交即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:25:10