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

Git提交消息批量替换Jira项目键,忽略分支名及TEST-SCD格式

解决方案

正则表达式与git filter-repo命令

直接用以下PowerShell命令完成精准替换,完全贴合你的匹配规则与排除要求:

# 先备份仓库(必做!避免历史丢失)
Copy-Item -Path ./your-repo -Destination ./your-repo-backup -Recurse

# 执行批量提交消息替换
git filter-repo --replace-message <(echo 's/\bTEST(?!-SCD)([-_=])(\d{1,5})\b/TESTPSW$1$2/g')

正则规则拆解

这条正则\bTEST(?!-SCD)([-_=])(\d{1,5})\b的设计逻辑:

  • \b:单词边界,确保只匹配独立的TEST前缀,不会误改包含TEST的长单词(比如TESTXYZ-123)
  • (?!-SCD):负向预查,直接排除TEST-SCD开头的格式,满足你忽略TEST-SCD+数字的要求
  • ([-_=]):捕获分隔符,匹配-、_、=任意一种
  • (\d{1,5}):捕获1-5位数字,严格限制数字长度
  • 替换部分TESTPSW$1$2:保留原分隔符和数字,仅替换前缀TEST为TESTPSW

关键说明

  1. 不修改分支名:--replace-message参数仅作用于提交消息字段,分支名不会被改动,自然满足你忽略分支中TEST-格式的要求
  2. 验证替换结果:执行命令后,用以下命令检查是否符合预期:
    # 查看所有替换后的提交消息
    git log --grep="TESTPSW[-_=]\d"
    # 确认没有误改TEST-SCD格式
    git log --grep="TEST-SCD\d"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:23:19