我有一个为git设置的提交模板,我想在其中包含当前分支的名称.我通常将分支设置为bug id,这将有助于我填写样板文件,例如:
Bug : $BUG
Run Code Online (Sandbox Code Playgroud)
如何使用git注释模板执行此类替换?
Cas*_*bel 19
我可能只是使用prepare-commit-msg
钩子将其添加到文件中.从(链接)手册页:
在准备默认日志消息之后,在编辑器启动之前,由git commit调用此挂接.
它需要一到三个参数.第一个是包含提交日志消息的文件的名称.第二个是提交消息的来源... [消息,模板,合并,壁球或提交] ...
如果退出状态为非零,则git commit将中止.
钩子的目的是在适当的位置编辑消息文件...
你可以得到当前的分支git symbolic-ref HEAD
.
您可以完全绕过模板,并使钩子前置/插入/追加分支名称.最简单的情况,附加,脚本只是一个shebang线,然后git symbolic-ref HEAD >> "$1"
.如果你想嵌入它,请使用你最喜欢的方法 - 最可读的方法是将原文放在一边,写入和追加,但注释中链接的方法肯定也有效.
如果您更喜欢使用带占位符的模板,您可以执行类似的操作sed -i "s/Bug : \$BUG/BUG : $(git symbolic-ref HEAD)/" "$1"
.我相信你可以想象很多其他的变化.
如果您使用样板替换方法,您可能希望针对某些类型的提交(第二个参数)抑制此行为,或者甚至仅在第二个参数为"模板"时将其打开.
使用 git 别名但没有模板的解决方案:
$ git config --global alias.com '!sh -c "bug=`git symbolic-ref HEAD|sed s#refs/heads/##`; git commit -em \"BUG: \${bug}\""'
$ git com
Run Code Online (Sandbox Code Playgroud)