在日常工作中,我们会针对特定主题对 git 存储库进行一些自动提交:
“作业:同步
存在一个脚本,可以使用以下内容查找此类型的最新提交并提取
git log --pretty=format:"%s" --grep='Job: sync' -n 1 | awk '{print $3}'
当有人在提交消息正文中的某个位置(而不是消息的第一行)创建包含文本“Job:sync”的提交时,出现了问题。
事实证明
git log --grep=
搜索整条消息,而不仅仅是主题。
通过将
--grep='Job: sync'
更改为 --grep='^Job: sync'
(因此它仅匹配行的开头),问题已得到部分缓解。但理论上,有人可以创建一条也匹配新 grep 模式的提交消息。
我的问题: 如何最好地搜索 git 存储库中主题中包含特定文本(提交消息的第一行)的所有提交消息?
git log --oneline | grep " Job: sync"
模式前的空格用于匹配提交 ID 后的模式。尝试
git log --oneline
查看其输出。