git:需要解析查找模式并存储在列表中的提交消息

时间:2011-12-09 03:45:45

标签: git grep commit-message

我的所有git提交消息都以

开头
  refs #SOME_NUMBER

其中SOME_NUMBER是1以上的数字。我想解析所有提交的消息 我的工作分支,将所有SOME_NUMBER存储在列表中,删除重复项并保存到文件。不确定从哪里开始......

1 个答案:

答案 0 :(得分:5)

你可以很容易地使用这个shell单行:

$ git log --format=%s | cut -f 2 -d ' ' | sed 's/#\(.*\)/\1/' | sort -n | uniq > refs.txt

说明:

  1. git log --format=%s显示每个提交消息的第一行
  2. cut -f 2 -d ' '用空格分割线条,然后打印(#SOME_NUMBER部分)的第二部分
  3. sed 's/#\(.*\)/\1/'从数字
  4. 中删除了数字符号
  5. sort按数字升序排序条目
  6. uniq确保每个号码只打印一次
  7. > refs.txt将输出打印到名为refs.txt的文件。