添加带有先前提交前缀的提交

Add commit with previous commits prefixes

我想创建一个 bash 脚本(或类似的东西,如果需要的话),它将在新分支上创建一个带有先前提交前缀的提交消息,但仅限于最后一次主提交之后的提交消息。

示例:

master <prefix1>:<msg1>
                       \
                        develop <prefix2>:<msg2> - <prefix3>:<msg3>
                                                                   \ 
                                                                    newbranch <prefix2 prefix3>

知道如何启动这个脚本吗?谢谢!

要提取自 master 以来的提交消息,您可以使用:

# from master to your current active commit :
git log --pretty="%s" master..HEAD

# from master to develop :
git log --pretty="%s" master..develop

(检查 git help log 的“漂亮格式”部分:"%s" 代表“提交消息的第一行”)

根据你问题中的图表,这应该输出:

$ git log --pretty="%s" master..develop
<prefix3>:<msg3>
<prefix2>:<msg2>

您现在可以使用其他文本处理命令来提取前缀并构建字符串。

例如,使用awk

# will extract the prefixes :
git log ... | awk '{ print  }'

# will build a single string with extracted prefixes, from oldest to newest :
git log ... | awk '{ prefix=" "prefix; } END { print prefix }'