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

如何通过Bash脚本为Git分支所有历史提交信息追加工单编号TIX-321

注意事项

该操作会重写整个分支的Git提交历史,执行前请务必对当前仓库进行完整备份,避免提交记录丢失。如果该分支有其他协作者,操作完成后需要通知所有协作者强制拉取最新分支历史,否则会出现历史分叉冲突。

自动执行脚本
#!/bin/bash
# 配置参数
TARGET_BRANCH="test_branch"
TICKET_ID="TIX-321"

# 切换到目标分支,失败则退出
git checkout "${TARGET_BRANCH}" || { echo "切换分支${TARGET_BRANCH}失败,请检查分支是否存在"; exit 1; }

# 遍历所有提交追加工单编号,已存在编号则跳过
git filter-branch -f --msg-filter "
    msg=\$(cat)
    if ! grep -q \"${TICKET_ID}\" <<< \"\$msg\"; then
        echo \"\$msg\"
        echo \"工单编号:${TICKET_ID}\"
    else
        echo \"\$msg\"
    fi
" HEAD

# 强制推送修改后的历史到远程仓库
git push origin "${TARGET_BRANCH}" --force-with-lease
脚本说明
  • 全程无人工交互,不需要使用交互式变基操作,自动遍历该分支的所有提交修改提交信息
  • 内置重复判断逻辑,不会给已经包含工单编号的提交重复追加内容
  • 使用--force-with-lease参数执行强制推送,会先校验远程分支没有你本地未同步的新增提交,避免误覆盖其他人的新提交
  • 如果你的环境已经安装git filter-repo,可以替换git filter-branch相关逻辑,执行效率更高,适合提交数较多的大型仓库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:27:02