git - 将字符串添加到一系列 git 提交的消息中
问题描述
我的本地 git 存储库中有一系列提交,其中包含以下消息:
Added source.h
Broken link fixed
Corrected unit test
Deleted deprecated algorithm
...
在将它们推送到服务器之前,我想在每条提交消息中添加票证信息:
Ticket #9999 (1): Added source.h
Ticket #9999 (2): Broken link fixed
Ticket #9999 (3): Corrected unit test
Ticket #9999 (4): Deleted deprecated algorithm
...
当然我可以git rebase
和reword
每一次提交,但我想自动化这个过程,因为它是如此重复。
我认为它应该以某种方式可行git filter-branch
,但环境变量只提供
GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL, and GIT_COMMITTER_DATE
,但不提供消息。
如何访问和自动操作提交消息?
编辑:请注意,票号始终相同,但括号中的数字连续递增。
解决方案
按照Mark 的提示使用 的--msg-filter
选项filter-branch
,完整的解决方案是:
如果提交范围是XXX..HEAD
,括号中的数字可以用 表示git rev-list --count XXX..$GIT_COMIIT
。因此,消息可以转换为sed
:
git filter-branch --msg-filter '
i=`git rev-list --count XXX..$GIT_COMIIT`
sed "1s/^/Ticket #9999 ($i): /"
' XXX..HEAD
推荐阅读
- wordpress - WordPress:有条件地过滤自定义帖子类型
- asp.net-core - 来自 RemoteAuthentication 的错误:OpenIdConnectAuthenticationHandler:message.State 为 null 或为空
- r - 有没有办法从 Rmarkdown 中的 YAML 标头中提取日期信息以用于 R 块?
- javascript - 从 ReactJS 中的 API 获取数据后如何重新渲染前端
- c - cs50 恢复,恢复的图像不匹配
- reactjs - 延迟加载 ReactJS 组件
- amazon-web-services - AWS IoT Core 中是否有任何规定可以获取以前的影子状态?是否有任何 API / 配置历史?
- sql - 每天都有窗口函数的 SQL 性能问题
- python - 正则表达式从python中的文本中识别固定字符字母数字词
- c - 如何在 C 项目中获取状态进程?