将部分分支名称添加到提交消息中
Prepend partial branch name to commit message
当前的分支名称约定如下:
feature/NEU-123
我尝试创建一个 git 钩子来添加提交消息,提交看起来像这样:
NEU-123: commit message
我没有创建这样的脚本的经验。这就是为什么我没有起点,需要尝试你的方法。
我已经查找了一些 Whosebug 条目,但找不到有关此特定命名约定的任何信息。
如果我在 master 分支上,或者任何只有一个单词分支名称的分支,那么在前面加上完整的分支名称也会很棒。
已经感谢您的帮助。
如 Client-side hook / Committing-Workflow Hooks 中所述,可以将 prepare-commit-msg 与提交模板结合使用以编程方式插入信息。
示例:janniks/prepare-commit-msg
which does get the branch name(使用 Ruby,但您可以使用任何您想要的脚本语言):
# get the current branch name
git_branch_command = "git rev-parse --abbrev-ref HEAD"
branch_name, error, result = Open3.capture3(git_branch_command)
在ljpengelen/prefix-commit-message
中有同样的想法
接近您要查找的内容:mikhailsidorov/husky-prepare-commit-msg-example
, and its bash .githooks/prepare-commit-msg
, from Mikhail Sidorov:
Example project with prepare-commit-msg
hook configured to prepend branch name to commit message automatically
#!/bin/bash
COMMIT_MSG_FILE=$(echo | head -n1 | cut -d " " -f1)
if [ -z "$BRANCHES_TO_SKIP" ]; then
BRANCHES_TO_SKIP=(master develop test)
fi
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
BRANCH_IN_COMMIT_MSG=$(head -1 $COMMIT_MSG_FILE | grep -c "$BRANCH_NAME")
if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT_MSG -ge 1 ]]; then
sed -i'.bak' -e "1s/^/$BRANCH_NAME /" $COMMIT_MSG_FILE
fi
当前的分支名称约定如下:
feature/NEU-123
我尝试创建一个 git 钩子来添加提交消息,提交看起来像这样:
NEU-123: commit message
我没有创建这样的脚本的经验。这就是为什么我没有起点,需要尝试你的方法。
我已经查找了一些 Whosebug 条目,但找不到有关此特定命名约定的任何信息。 如果我在 master 分支上,或者任何只有一个单词分支名称的分支,那么在前面加上完整的分支名称也会很棒。
已经感谢您的帮助。
如 Client-side hook / Committing-Workflow Hooks 中所述,可以将 prepare-commit-msg 与提交模板结合使用以编程方式插入信息。
示例:janniks/prepare-commit-msg
which does get the branch name(使用 Ruby,但您可以使用任何您想要的脚本语言):
# get the current branch name
git_branch_command = "git rev-parse --abbrev-ref HEAD"
branch_name, error, result = Open3.capture3(git_branch_command)
在ljpengelen/prefix-commit-message
接近您要查找的内容:mikhailsidorov/husky-prepare-commit-msg-example
, and its bash .githooks/prepare-commit-msg
, from Mikhail Sidorov:
Example project with
prepare-commit-msg
hook configured to prepend branch name to commit message automatically#!/bin/bash COMMIT_MSG_FILE=$(echo | head -n1 | cut -d " " -f1) if [ -z "$BRANCHES_TO_SKIP" ]; then BRANCHES_TO_SKIP=(master develop test) fi BRANCH_NAME=$(git symbolic-ref --short HEAD) BRANCH_NAME="${BRANCH_NAME##*/}" BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$") BRANCH_IN_COMMIT_MSG=$(head -1 $COMMIT_MSG_FILE | grep -c "$BRANCH_NAME") if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT_MSG -ge 1 ]]; then sed -i'.bak' -e "1s/^/$BRANCH_NAME /" $COMMIT_MSG_FILE fi