3

我所有的 git commit 消息都以

  refs #SOME_NUMBER

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

4

1 回答 1

6

你可以很容易地用这个 shell one-liner 做到这一点:

$ 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. sort按数字升序对条目进行排序
  5. uniq确保每个数字只打印一次
  6. > refs.txt将输出打印到名为refs.txt.
于 2011-12-09T04:10:53.790 回答