Git 别名解析消息

Git alias parse message

我正在尝试创建一个别名来添加我的更改,然后再提交它们。提交消息必须以分支名称为前缀。该消息应类似于:

[BRANCH-123] 此处留言

我的分支以 'bugfix/' 或 'feature/' 之类的子树为前缀,我希望将它们从邮件中删除。到目前为止我有:

branch-name = "!git rev-parse --abbrev-ref HEAD"

something = "!f() { git add -A && git commit -m \"[${$(git branch-name)#*/}] \"; }; f"

然而,'something' 命令显示 'Bad substitution'。

参数替换采用变量名进行操作,而不是值。

因此,您不能 运行:

echo "${$(somecommand)##*/}"

相反,您需要 运行:

var=$(somecommand)
echo "${var##*/}"

因此:

something = "!f() { local branch; branch=$(git branch-name); git add -A && git commit -m \"[${branch#*/}] \"; }; f"