我使用 git 进行本地工作(并且非常喜欢它),并且遵循类似于中描述的工作流程本文 http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html。所以基本上,当开始一个新功能时,我会为它创建一个分支,经历通常的黑客然后提交周期,当我认为我已经完成了它时,我将它压缩成一个提交使用git rebase --interactive master
,我总是最终将大量提交消息编辑成类似于文章中示例的内容,在此处复制:
[#3275] User Can Add A Comment To a Post
* Adding Comment model, migrations, spec
* Adding Comment controller, helper, spec
* Adding Comment relationship with Post
* Comment belongs to a User
* Comment form on Post show page
当然,这是经过一系列删除之后# This is the xth commit message
行和复制/粘贴*
在每个提交消息的前面。
现在,我想知道的是,有没有办法自定义 git rebase -i 输出压缩的提交消息的方式所以我不必做所有这些黑客工作?
(我使用 msysgit,如果这很重要的话。我的编辑器是 Notepad++。)
Thanks!
从 Git 2.6+(2015 年第 3 季度)开始,实际上将有一种方法来配置 git rebase -i 提交消息。
See commit 16cf51c https://github.com/git/git/commit/16cf51c7a2e82f27577bb1bdcdc013c34815803e (13 Jun 2015) by Michael Rappazzo (rappazzo) https://github.com/rappazzo.
(Merged by Junio C Hamano -- gitster -- https://github.com/gitster in commit 9f56db7 https://github.com/git/git/commit/9f56db7cafc6a4634b8f2fa70f1c8949f4242df1, 03 Aug 2015)
git-rebase--interactive.sh
:添加自定义指令格式的配置选项
一个配置选项'rebase.instructionFormat
'可以覆盖默认值'oneline
' 变基指令列表的格式。
由于列表是使用左、右或边界标记加上 sha1 进行解析的,因此它们被添加到指令格式之前。
您很快就会有一个新的配置:
rebase.instructionFormat
格式字符串,如中指定的git log http://git-scm.com/docs/git-log,用于交互式变基期间的指令列表。
该格式将自动将长提交哈希值添加到格式前面。
例如:
git config --add rebase.instructionFormat "[%an @ %ar] %s"
请注意,该功能发布后存在错误/回归:
See "rebase 指令中的注释变得过于僵化 http://www.spinics.net/lists/git/msg260671.html"
我注意到变基指令表中注释行的格式变得更加严格 - 它不能再以空格或制表符开头。注释字符(例如“#”)必须出现在第一列。
Jefromi https://stackoverflow.com/users/119963/jefromi评论below https://stackoverflow.com/questions/2480923/how-do-i-customize-the-format-of-git-rebase-interactive-commit-messages/32038985?noredirect=1#comment62636614_32038985:
它出现它仅影响交互式变基中的显示,而不影响生成的提交消息.
我尝试使用您的示例格式字符串,并且确实在编辑器中看到了作者信息,但是一旦我告诉它压缩,生成的模板提交消息仍然是通常的消息。
所以这对于 OP 来说并不完美。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)