gpt4 book ai didi

git - 如何自定义 git rebase --interactive 提交消息的格式?

转载 作者:IT王子 更新时间:2023-10-29 00:53:43 29 4
gpt4 key购买 nike

我在本地工作时使用 git(并且非常喜欢它),并且我遵循类似于 this article 中描述的工作流程.所以基本上,当开始一个新功能时,我为它创建一个分支,经历通常的 hack 然后提交周期,当我认为我完成了它时,我使用 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++。)

谢谢!

最佳答案

从 Git 2.6+(2015 年第 3 季度)开始,实际上将有一种方法可以配置 git rebase -i 提交消息。

参见 commit 16cf51c (2015 年 6 月 13 日)作者:Michael Rappazzo (rappazzo) .
(由 Junio C Hamano -- gitster -- merge 于 commit 9f56db7 ,2015 年 8 月 3 日)

git-rebase--interactive.sh:为自定义指令格式添加配置选项

A config option 'rebase.instructionFormat' can override the default 'oneline' format of the rebase instruction list.

Since the list is parsed using the left, right or boundary mark plus the sha1, they are prepended to the instruction format.

你很快就会有一个新的配置:

rebase.instructionFormat

A format string, as specified in git log, to be used for the instruction list during an interactive rebase.
The format will automatically have the long commit hash prepended to the format.

例如:

git config --add rebase.instructionFormat "[%an @ %ar] %s"

请注意,该功能发布后存在错误/回归:
参见“Comment in rebase instruction has become too rigid

I noticed that the format of the comment lines in a rebase instruction sheet has become stricter - it could no longer begin with spaces or tabs. The comment char ("#" for example) has to appear on the first column.


Jefromi评论 below :

it appears it's only meant to affect the display within interactive rebase, not the resulting commit messages.

I gave it a try with your example format string and I indeed saw the author information in my editor, but once I told it to squash, the resulting template commit message was still the usual one.

所以这不是 OP 的完美选择。

关于git - 如何自定义 git rebase --interactive 提交消息的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2480923/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com