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

2024-01-07

我使用 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(使用前将#替换为@)

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

随机推荐

  • 在 MATLAB 中将类数组的元素分配给各个变量时出现问题

    这有点重复这个问题 https stackoverflow com questions 2893356 matlab easiest way to assign elements of a vector to individual vari
  • 使用 ng-click 传递对 DOM 对象的引用

    我有多个元素在 ng click 上具有相同的回调
  • TestFlight 崩溃日志未显示在 Xcode 中?

    好的 我使用的是最新版本的Xcode macOs 一切都更新了 我刚刚将新版本上传到 TestFlight 突然在 Organizer 中没有显示任何崩溃报告 我知道我们发生了崩溃 因为我的测试人员向我展示了他的手机 我让他进入隐私设置并打
  • SSO 华夫饼询问用户名和密码

    我正在尝试运行华夫饼 华夫饼过滤器演示 的演示 下载自http repo1 maven org maven2 com github dblock waffle waffle filter demo 1 6 waffle filter dem
  • Hammer.js:如何处理/设置相同元素上的点击和双击

    我正在使用 jquery hammer js 它工作得很好 我能够将函数绑定到双击事件 效果很好 我想要的是绑定两种不同的行为 一种用于 点击 一种用于 双击 我使用下面的代码来绑定我的函数 当我这样做时 我只得到 点击 双击 似乎没有被触
  • 无法使用 Vite 使用 Vue 3 加载模板组件库

    我创建了一个示例项目来重现此问题 https github com splanard vue3 vite web components https github com splanard vue3 vite web components 我
  • 如何创建装饰器以延迟初始化属性

    我想创建一个像属性一样工作的装饰器 只是它仅调用装饰函数一次 并且在后续调用中始终返回第一次调用的结果 一个例子 def SomeClass object LazilyInitializedProperty def foo self pri
  • Java 神秘的 EOF 异常与 readObject

    下面的代码产生一个EOFException 这是为什么 public static Info readInfoDataFromFile Context context Info InfoData null FileInputStream f
  • 使用 Javascript 以编程方式将 Google Chrome 置于全屏模式?

    我最近在使用 YouTube 时 点击了 YouTube 视频中的全屏按钮 屏幕顶部出现一条消息 说我已进入全屏模式 此消息是您在键盘上按 f 11 时收到的本机消息 我还在某处读过一些东西 我现在找不到 说现在可以用 Javascript
  • 序列化对象消失(BinaryFormatter)

    背景 我有一个对象需要序列化才能传输到高性能计算集群以供以后使用 以前 我为我的对象使用了开箱即用的二进制格式化程序 它代表了统计形状模型 并且一切都很顺利 我的对象变得更加复杂 我决定通过实现 ISerialized 来自定义序列化过程
  • 将 n 写成 2 的幂和的方法数

    是否有任何算法可以找出有多少种方法可以写入一个数字 例如 n 其幂总和为 2 例如 对于 4 有四种方法 4 4 4 2 2 4 1 1 1 1 4 2 1 1 thanks 假设g m 是把m写成2的幂和的方式的数量 我们用f m k 来
  • 字 OpenXML 。在书签之间遍历 OpenXmlElements

    我需要遍历书签开始和书签结束标记之间的节点 问题似乎分解为树遍历 但我无法确定正确的算法 书签开始和结束元素是非复合节点 没有子节点 并且可以出现在树中的任意深度 书签开始也不保证处于相同的深度 如果您绘制文档的树结构 我想检查开始书签和结
  • 在 x86 程序集中声明数组

    我正在学习汇编 我需要制作一个大数组 我已经研究过如何声明数组 并且遇到了这个 array db 10 dup 其中声明了 10 个未初始化字节的数组 我尝试了这个并尝试组装它并得到 错误 操作数 1 之后需要逗号 我意识到 x86 不支持
  • 将div的内容保存到本地存储,并显示在另一个页面上

    我正在尝试获取 a 的内容 div 在页面加载的页面上 并将其保存到本地存储 当有人再次访问主页时 我想要这个内容div要显示 虽然我可以让函数与表单输入字段和提交一起使用 但我找不到仅使用内容和页面加载来使其工作的方法 任何帮助表示赞赏
  • 在 Pandas 中使散点图的标签垂直和水平

    我在用着Pandas绘制散点图矩阵 from pandas tools plotting import scatter matrix 问题是列中的名称DataFrame太长了 我需要它们在 x 轴上垂直 在 y 轴上水平 这样它们才能适合
  • Putty 谷歌云计算

    我对谷歌云和腻子很陌生 我的问题是当我在计算机上打开 putty 并在 putty 中输入外部 IP 时 我的屏幕打开并要求我登录 我的问题是我要输入什么才能登录 这是谷歌用户名帐户吗 更好的问题是我在哪里可以找到登录虚拟机所需的登录名和密
  • 如何将日期时间格式化为数据表中的特定日期格式

    在我的 datagridview1 中 日期列显示格式 MM dd yyyy hh mm ss 然后我使用这段代码 我使用一个函数来填充这样的 datagridview public void load table DataTable lt
  • 在 Redis 中使用嵌套对象?

    假设我有一个嵌套属性可以更改的哈希值 key1 prop1 subprop1 could change 如果我收到以下信息prop1 subprop1已更改 我可以对此属性执行原子更新吗 现在node redis saves prop1作为
  • 使用 Roslyn 拆分表达式语句

    我正在开发一个可以改写的应用程序CSharp代码 我正在这样做Roslyn 我面临着一个问题splitting expressions 样板课 class Program static void Main string args float
  • 如何自定义 git rebase --interactive 提交消息的格式?

    我使用 git 进行本地工作 并且非常喜欢它 并且遵循类似于中描述的工作流程本文 http reinh com blog 2009 03 02 a git workflow for agile teams html 所以基本上 当开始一个新