5

非常に特殊な形式で git ログをフォーマットしようとしています。

私はもともとgit log --format="%H,%an,%ae,%ad,%p"次の出力を生成するものを使用していました(コミットごとに):

b05f827b41856e6f4bcfba20c32f58434ce3a5a6,Kevin Jalbert,kevin.j.jalbert@gmail.com,Fri Sep 7 14:43:16 2012 -0400,206f23d

現在、各コミットの参照 (つまり、タグ/ブランチ) 情報を取得しようとしています。コマンドを使用してこの情報を表示できます。これgit log --sourceは、必要なものを正確に示しています (つまり、コミット SHA の後にある参照)。

commit 84deec66f94085ee3a0e6f6204f06296d7a1a903 refs/remotes/origin/HEAD
Author: Kevin Jalbert <kevin.j.jalbert@gmail.com>
Date:   Fri Sep 21 17:02:33 2012 -0400

    commit message

commit f1e1b8d11defc48839557db5e54a5a6f7ffe6cad refs/heads/issue_5
Author: Kevin Jalbert <kevin.j.jalbert@gmail.com>
Date:   Thu Sep 13 15:34:36 2012 -0400

    commit message

commit d7acdbd957d9b477f8849fd5a37882cdd78d8e1f refs/tags/v0.3.0
Author: Kevin Jalbert <kevin.j.jalbert@gmail.com>
Date:   Wed Sep 12 16:48:46 2012 -0400

    commit message

私がやろうとしているのは、元の--format="..."コマンドの最後にこの情報を含めることです。そのため、次のような出力が得られます。

 b05f827b41856e6f4bcfba20c32f58434ce3a5a6,Kevin Jalbert,kevin.j.jalbert@gmail.com,Fri Sep 7 14:43:16 2012 -0400,206f23d,refs/remotes/origin/HEAD

フラグに基づいてコミットのブランチ/タグ/参照を参照する形式のプレースホルダーが見つからないようです。--source正しいプレースホルダーがないだけですか? または、必要なカスタム情報とともに参照をフォーマット/表示する別の方法はありますか?

4

3 に答える 3

1

これも探していました。の一部としてフラグを見つけることができませんでしgit-logたが、CSV 行の最後に列を追加すると、次のように動作します。

$ git log --no-color --source --oneline --all | while read sha1 srcref subject
> do echo "$(git log -1 --format="%H,%an,%ae,%ad,%p" $sha1),$source"
> done

の形式--oneline%h %<our missing format character> %swhen--sourceが提供されているので、そこまでの道のりです。次に、残りのフォーマット指定子を使用して SHA1 を元に戻すgit log -1と、残りの方法が得られます。

于 2014-02-26T23:41:40.383 に答える
0

%dあなたが探しているものかもしれません-それはどのブランチ/タグが各コミットを参照しているかを示します。

于 2012-10-20T20:30:38.883 に答える