2016-04-08 6 views
1

コマンドラインで1つのファイルを指定しても、変更されたすべてのファイルの名前を1つのコミットから取得するにはどうすればよいですか?変更されたすべてのファイルの名前を1つのファイルのログに取得

commit abc... HEAD 
Author: Joseph Blow 
Date: Tue Feb 30 ... 

    Very important Change 

afile.c 
anotherfile.c 

をしかし、私はこれを行う場合:私は、全体のレポにgit log --name-onlyをすれば

たとえば、私はこのようなログを取得します

commit abc... HEAD 
Author: Joseph Blow 
Date: Tue Feb 30 ... 

    Very important Change 

afile.c 
git log --name-only afile.cを、私はこれを取得します

ファイルを指定したにもかかわらず、そのコミットで変更されたすべてのファイルを表示する必要があります。

[編集]このサンプルは、出力にある多くのコミットメッセージの1つに過ぎません。

答えて

2

git log --name-only --full-diff afile.c

これは完全な差分を示しているが、「すべてのファイル、指定されたものではないだけを考慮しない」を意味しません。

+0

で簡単にそれを行うことができ、それはすべてがafile.c' 'そのタッチをコミット示しています。ただ一つのコミットのリクエストではありませんか? –

+0

これは、OPが望むように動作するようになります。 'git log -name-only -full-diff HEAD^.. HEAD-afile.c' –

+0

これはもっと単純に' git log --name-only --full-diff -1 afile.c'ですが、彼のコマンド例に従えば、彼が要求したものではないと思います。私は彼が最初のコミットの後に出力をカットするか、それが彼のファイルに触れる唯一のコミットだと思う。それ以外に、 '^.. 'は ' ^! 'と省略できます。 – Vampire

0

gitでは、これは2つのコマンドで実行できます。 git logを実行してsha1を見つけたら、git show --name-only <sha1>を使って、そのコミットの他のファイルの名前を取得できます。名前にもかかわらず

+0

いいえ、あなたは一つのコマンド – Vampire

0

あなたは1行でそれを行うためにgit showgit logをマージすることができます;)

git show --name-only $(git log --format=%H -- afile.c) 

Gitのショーafile.c含まハッシュのリストを作成--format=%Hと口論とgitのログとしてハッシュのリストを受け入れますコミットすると、このリストはgit showの入力として使用されます。

私はそれが役に立てば幸い:私はこれを行うとD

関連する問題