【问题标题】:git commit: pre-populate commit subject but still prompt for a commit message [duplicate]git commit:预填充提交主题,但仍提示提交消息 [重复]
【发布时间】:2019-05-17 04:51:44
【问题描述】:

假设我在一个分支上工作并且我运行git commit。然后我被带到提交消息提示,我可以在其中输入提交主题和消息。我正在寻找的是一种预先填充提交主题的方法,同时仍然能够手动编写提交消息。

这个问题与this one 不同,因为我希望填充提交主题,但仍希望被提示输入提交消息,即在 git bash 中运行 git commit -a 会导致类似:

编辑: githooks 的不当使用导致链接问题的已接受答案无法正常工作。因此,问题并不明显,可以标记为重复。

我目前正在尝试使用分支名称预先填充提交主题,但将来我可能希望该文本成为其他内容。因此,首选通用解决方案(不是专门针对分支名称)。

【问题讨论】:

  • 使用您链接的另一个问题的答案之一有什么问题?您可以只创建一个prepare-commit-msg 钩子而不填写描述。
  • 接受的答案没有加载提交提示让我输入消息。
  • 从头开始,我这边有一个错误。这确实是重复的,可以这样标记。

标签: bash git githooks git-commit commit-message


【解决方案1】:

.git/hooks/prepare-commit-msg 挂钩允许您在进入提交消息提示之前准备提交消息。在该钩子中,您会收到提交消息作为第一个参数,并且可以,例如,回显到其中:

COMMIT_MSG_FILE=$1

branch=$(git rev-parse --symbolic --abbrev-ref HEAD)

echo "Committing into branch: $branch" > $1;
echo "" >> $1;
echo "Some initial commit message body." >> $1;

如果您只有一些预定义的文本,并且不需要任何逻辑(例如获取分支名称,您可以使用提交消息模板。这是一个普通的旧文本文件,commit.template 配置点例如,如果你的文件是~/.gitmessage:

$ git config commit.template ~/.gitmessage

【讨论】:

    猜你喜欢
    • 2017-11-08
    • 2020-05-07
    • 1970-01-01
    • 2011-09-07
    • 2011-06-29
    • 1970-01-01
    • 2014-03-11
    • 2014-11-13
    • 1970-01-01
    相关资源
    最近更新 更多