添加带有先前提交前缀的提交
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 }'
我想创建一个 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 }'