从分支名称解析票号并将其显示为 Windows 上 TortoiseGit 中的默认提交消息

Parse ticket number from branch name and show it as default commit message in TortoiseGit on Windows

我的功能分支称为 feature/x_somename,其中 x 是票号。每次我开始新的提交时,都会发生以下情况:

  1. 从分支名称解析票号。
  2. refs #x: 放入提交消息中(其中 x 是票号)。
  3. 显示带有准备好的提交消息的提交对话框

我该怎么做?

可以使用 TortoiseGit hooks (not to be confused with git hooks):

  1. 创建一个包含以下行的批处理文件(只需复制和粘贴):

    :: try to parse ticket number from branchname (expected format: "sometext/ticketnumber_sometext")
    for /f "tokens=2 delims=/_" %%i in ('git rev-parse --abbrev-ref HEAD') do set c=%%i
    :: print "refs #ticketnumber: "
    if defined c echo refs #%c%: >> %2`
    
  2. 在 TortoiseGit 设置中转到 Hook Scripts

  3. Add
  4. 检查Enabled
  5. 选择这个钩子应该工作的路径(* 所有路径)
  6. 将批处理脚本的路径放入 Command Line To Execute 框中。
  7. Ok并关闭设置。
  8. 关闭并重新打开所有其他 TortoiseGit windows 以确保挂钩已设置。

批处理文件有什么作用?
git rev-parse --abbrev-ref HEAD returns 分支名称。
for 命令将结果拆分为 /_
然后它将采用此拆分的第二部分并将其保存在 %%i.
然后它将 %%i 保存到变量 c.
if 只是检查 c 是否被定义,如果是则打印结果。