質問

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

他のヒント

私が従うべきステップは次のとおりです。

  1. カスタム形式を使用して、タイトルのみを出力します( TITLE: 準備された)と体
  2. 探しているSEDスクリプトを書いてください TITLE:, 、それを保存してから、探します ISSUE=, 、および両方を出力します

だから、私が利用できる限られた時間に私が思いついたものはここにあります。これはまさにあなたが求めたものではありませんが、それは出発点です:

git log --format='format:TITLE:%s%n%b'|sed -ne '/^TITLE:/h;s/ISSUE=//;t found;b;: found;G;p'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top