いくつかの条件に一致するコミットで変更されたすべてのファイルを取得したいとします。だから私は次のようにしている:git log --grep=123
、私は集約リストとしてそのコミットで変更されたファイルを取得する必要があります。ファイルが複数のコミットで変更された場合は、結果リストに1回だけ含める必要があります。いくつかのコミットでgit list changed filesを
git log --grep=pattern --name-only --pretty=format:'' | sort -u
を使用すべきではありませんか? –
人間の消費者向けのいわゆる磁器コマンドであるのに対し、配管コマンドはマシンの消費(スクリプト)用に提供されるためです。上記の行を正しく書くためには、 'git rev-list'や' git diff-tree'などを使うべきです... – knittl
@knittl:私はそれに完全に同意しません。 'git status'が悪いが' git status --porcelain'が良いのと同じように、 'git-log'は出力フォーマットを注意深く制御するならスクリプト*に使うのがかなり妥当です。 'git rev-list ... 'を実行し、単に' git log ... --format = ... 'を使用するのではなく、' git show --format = ... 'を使ってループすることをお勧めしますか? – Cascabel