在 git 中提交消息前缀
Posted
技术标签:
【中文标题】在 git 中提交消息前缀【英文标题】:Commit message prefix in git 【发布时间】:2012-05-04 00:26:24 【问题描述】:我需要在提交消息之前添加“ticket:N”,其中 N 是我正在处理的票证的编号。但是我一直忘记前缀,并且只在 5-6 次提交后才记住它,所以 --amend
无济于事。是否可以设置一些警告,所以每次我忘记添加前缀时git都会警告我?
【问题讨论】:
【参考方案1】:您可以将filter-branch
与--msg-filter
组合使用来更新一系列提交。
例如,如果您想在从 HEAD 到 xxxxxx 的每条提交消息前添加 ticket:N
:
git filter-branch -f --msg-filter 'printf "ticket:N " && cat' xxxxxx..HEAD
您还可以通过简单地反转printf
和cat
来附加到提交消息:
git filter-branch -f --msg-filter 'cat && printf "ticket:N"' xxxxxx..HEAD
【讨论】:
这种方法的一个小问题是它会在前缀和消息的其余部分之间添加一个换行符。您可以通过使用 'printf "ticket:N" && cat' 作为过滤器来避免这种情况。 (echo -n 不是很便携,仅在某些 shell 中可用)。 这个答案救了我!我的具体问题是添加 JIRA 票号。这个答案是解决方案tjdane.medium.com/…的基础【参考方案2】:为确保每条提交消息都遵循某种标准格式,您可以使用the commit-msg
hook。
但是如果你想编辑一些不是最新的提交的提交消息,你也可以使用git rebase -i
来做到这一点,假设你还没有推送它。
【讨论】:
无论我在哪里称它们为 IDE 或一些 GUI 工具,这些钩子是否每次都在工作? 我认为他们应该,但我没有尝试。【参考方案3】:如果您特别想将 JIRA 票号添加到您的提交中,您可以使用此方法 https://tjdane.medium.com/add-a-jira-ticket-to-a-batch-of-old-commits-67557fb42d3e
【讨论】:
以上是关于在 git 中提交消息前缀的主要内容,如果未能解决你的问题,请参考以下文章