1

git log からカスタム形式の変更ログを作成するのに助けが必要です。

これは、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コマンドを使用する初心者であることを伝えなければなりません。

4

2 に答える 2

0

私が従う手順は次のとおりです。

  1. カスタム形式を使用して、タイトル (TITLE:先頭に追加) と本文のみを出力します。
  2. TITLE:を探して保存し、次に を探し、ISSUE=両方を出力する sed スクリプトを作成します。

そこで、限られた時間の中で思いついたのがこちら。これはまさにあなたが求めたものではありませんが、出発点です:

git log --format='format:TITLE:%s%n%b'|sed -ne '/^TITLE:/h;s/ISSUE=//;t found;b;: found;G;p'
于 2013-11-08T07:08:23.363 に答える