これは非常に簡単な質問です.Git初心者の方は、gitログをファイルに出力する方法があるかどうか、XML、JSON、YAMLなどのシリアライズされた形式にすることができますか?助言がありますか?ファイルに出力するGit log出力をXML、JSON、またはYAMLに出力しますか?
答えて
:
git log > filename.log
あなたは1行
git log --pretty=oneline >filename.log
またはあなたはそれsendmailのようなプログラムを経由して電子メールで送信するフォーマットしたいのすべてをしたいように、形式を指定するにはあなたのような何かをする必要があるよう
git log --pretty=email |email-sending-script.sh
JSON、YAMLやXMLを生成し、それに見えます:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
この要旨(ない鉱山が)完全にJSONで出力をフォーマット: https://gist.github.com/1306223
も参照してください:
私はこのようなことをして、リポジトリ内の最後の5つのコミットを表示する最小限のWeb API/javascriptウィジェットを作成しました。
あなたはスクリプト言語の任意の並べ替えからこれをやっている場合は、あなたが本当にあなたがコミットメッセージに実際の引用符をエスケープすることができるように、あなたの引用文字のため"
以外のものを使用してJSONを生成したいです。 (あなたがは遅かれ早かれそれらを持っているだろうし、それは、物事を破るためにそれは素晴らしいではありません。)
をだから私は恐ろしいが、そう区切り^@^
と、このコマンドラインになってしまいました。
var cmd = 'git log -n5 --branches=* --pretty=format:\'{%n^@^hash^@^:^@^%h^@^,%n^@^author^@^:^@^%an^@^,%n^@^date^@^:^@^%ad^@^,%n^@^email^@^:^@^%aE^@^,%n^@^message^@^:^@^%s^@^,%n^@^commitDate^@^:^@^%ai^@^,%n^@^age^@^:^@^%cr^@^},\'';
次に(Node.jsの中で)私のHTTPレスポンスボディがthusly git log
へのコールのstdout
から構成されています
var out = ("" + stdout).replace(/"/gm, '\\"').replace(/\^@\^/gm, '"');
if (out[out.length - 1] == ',') {
out = out.substring (0, out.length - 1);
}
と結果がで壊れない素敵なJSONです引用符。
コミットメッセージの特殊文字をエスケープするには、書式文字列に '%s'の代わりに'%f'を使用するのが速やかです。 –
FWIW、これを使用するプロジェクトアプローチ[ここにある](https:// github。 –
)ES16のテンプレート文字列を使用してこれを行うことができると言えば、^ @ ^区切り記号とノード文字列の置換を使用する必要はありません。 – Gary
このスクリプトは、gitのログをラップし、JSON出力生成:https://github.com/paulrademacher/gitjson
見よhttps://github.com/dreamyguy/gitlogg、あなたが必要となり、最後git-log => JSON
パーサを!
Gitloggの機能のいくつかは以下のとおりです。
- は1つの
JSON
ファイルにgit log
の複数のリポジトリを解析します。 repository
キー/値files changed
、insertions
とdeletions
キー/値を導入しました。- 導入済み
impact
コミットの累積変更(insertions
-deletions
)を表すキー/値です。 subject
のように、ユーザー入力によって許可されるか作成されるすべての値に対して、二重引用符を"
サニタイズすると、一重引用符'
に変換されます。- ほとんどすべての
pretty=format:
プレースホルダが利用できます。 - 利用可能なものをコメントアウト/コメント解除することによって、どのキー/値が
JSON
に解析されるのかを簡単に含める/除外します。 - 完全にコメントされたコードを読むのは簡単です。
- コンソールでのスクリプト実行のフィードバック。
- エラー処理(リポジトリへのパスを正しく設定する必要があるため)
- 1. git logコマンド出力を 'inline'にします。
- 2. git log - xml出力を取得する方法
- 3. アレイ出力またはJSON出力
- 4. yaml-cppでJSONを出力しますか?
- 5. vbaは異なる出力フォルダのxml出力をExcelに出力します
- 6. Apache 2はデフォルトでjson出力を出力しますか?
- 7. XMLをテキストファイルに出力しますか?
- 8. git statusは出力を出力しません
- 9. /var/log/messagesをhtml/php出力に表示しますか?
- 10. git-applyかgit-amは同じハッシュを出力しますか?
- 11. PythonはYAMLファイルを解析して値を出力します
- 12. C#WebサービスはJSON、XMLのみを出力しません
- 13. json入力をSuaveで出力しますが、出力されません
- 14. REST出力の "class"を出力します。json
- 15. Sympyはlog(e)で微分を出力します。
- 16. ユーザの入力を出力に出力しますか?
- 17. 出力ファイルに出力データを出力しています
- 18. C#属性はC#の出力または出力に影響しますか?
- 19. mongodbマップ出力を減らす - 出力または部分出力に失敗しました
- 20. regluar 'git push'出力からのHeroku 'git push'出力の解読
- 21. dataimport rawステータス出力をJsonに出力できません
- 22. ターミナルで出力されたテラフォームテンプレートを出力しますか?
- 23. IObservable出力は入力前に出力されますか?
- 24. gitコマンドの出力を別のgitコマンドに入力できますか?
- 25. JSONレスポンスをファイルに出力しましたか?
- 26. なぜ "git log --tags = <pattern>"は "refs/tags"を出力に追加しますか?
- 27. Log4jがファイルまたは標準出力に出力しない
- 28. Mulesoft WebサービスのXML出力のJSONへ
- 29. Log4net xml出力
- 30. なぜgit push --quietは出力を生成しますか?
これは魅力のように機能しました、ありがとう!将来の読者のために、 "format"で使用されるショートコードへのリンクがあります:http://www.kernel.org/pub/software/scm/git/docs/git-log.html – Andrew
@andrew aww ... link broke ... – Marty
うーん。まあ、私が見つけることができるすべての参照は、同じ壊れたページを指しているので、リダイレクトなしでgitのドキュメントをダウンした人には恥をかかせます。ブー。 – Andrew