使用 awk
あなたはこのようにできます:
git log <old version>..HEAD | awk -F= '/title/ {a=$0} /ISSUE=BZ/ {b=$2 a;gsub(/ +/," ",b);print b}'
BZ1020 This is the title of the commit
BZ1022 This is the title of the commit
質問
gitログからカスタムフォーマット変更ログを作成するためにヘルプが必要です。
Gitログが私たちがそれを書く方法のように見える方法は次のとおりです。
commit 2f5719d373e284e4473a5a3f229cbf163f6385fe
Author: Adrian <adrian@mycompany.com>
Date: Tue Nov 5 17:23:51 2013 +0100
This is the title of the commit
Some description about the commit, row 1
Some description about the commit, row 2
Some description about the commit, row 3
ISSUE=BZ1020
ISSUE=BZ1022
Change-Id: I1e15e12da28692e09c377c084dc439fec1d58f4c
フォーマットしたい方法は、 title
行と ISSUE=BZ
列と素敵な変更ログを作成します。最初に問題番号でこのようなものが欲しいのですが、次にタイトルが欲しいです。また、いくつかをサポートしたいです ISSUE=BZ
誰かが1つのコミットでいくつかのバグを修正した場合のタグ。もちろん、すべてのコミットにバグが固定されているわけではないので、それらのコミットを完全に省略したいと思います。
BZ1020 This is the title of the commit
BZ1022 This is the title of the commit
これまでのところ、私はこのコマンドのタイトルではなく、固定されたすべての問題を抽出することができました。
git log <old version>..HEAD | grep -i 'ISSUE=BZ' | sed 's/.*=//g'
生産:
BZ1020
BZ1022
進める方法はありますか?私は私が初心者であることをあなたに言わなければなりません sed
指図。
解決
使用 awk
あなたはこのようにできます:
git log <old version>..HEAD | awk -F= '/title/ {a=$0} /ISSUE=BZ/ {b=$2 a;gsub(/ +/," ",b);print b}'
BZ1020 This is the title of the commit
BZ1022 This is the title of the commit
他のヒント
私が従うべきステップは次のとおりです。
TITLE:
準備された)と体TITLE:
, 、それを保存してから、探します ISSUE=
, 、および両方を出力しますだから、私が利用できる限られた時間に私が思いついたものはここにあります。これはまさにあなたが求めたものではありませんが、それは出発点です:
git log --format='format:TITLE:%s%n%b'|sed -ne '/^TITLE:/h;s/ISSUE=//;t found;b;: found;G;p'