git log で変更・追加されたファイルを表示する

git log で変更者、変更日時等の変更履歴が表示されますが、変更されたファイル名を表示するには --stat, --numstat, --name-status, --name-only などで知ることができます。

% git log  --stat
commit 801fe8c4bd09f91bb2172640c4857acc52f89135
Author: Yuumi Yoshida <yy@ey-office.com>
Date:   Sun Aug 3 12:15:30 2008 +0900

    バグ対応

 upload.rb |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 609aa81ec0a489cdac4cb2398918758f609a47e4
Author: Yuumi Yoshida <yy@ey-office.com>
Date:   Sun Aug 3 11:56:59 2008 +0900

    Git移行後

 html/index.html     |    4 ++--
 html/news.html      |    1 +
 html/style/base.css |    2 ++
 3 files changed, 5 insertions(+), 2 deletions(-)
% git log  --numstat 
commit 801fe8c4bd09f91bb2172640c4857acc52f89135
Author: Yuumi Yoshida <yy@ey-office.com>
Date:   Sun Aug 3 12:15:30 2008 +0900

    バグ対応

1       1       upload.rb

commit 609aa81ec0a489cdac4cb2398918758f609a47e4
Author: Yuumi Yoshida <yy@ey-office.com>
Date:   Sun Aug 3 11:56:59 2008 +0900

    Git移行後

2       2       html/index.html
1       0       html/news.html
2       0       html/style/base.css
% git log  --name-status
commit 801fe8c4bd09f91bb2172640c4857acc52f89135
Author: Yuumi Yoshida <yy@ey-office.com>
Date:   Sun Aug 3 12:15:30 2008 +0900

    バグ対応

M       upload.rb

commit 609aa81ec0a489cdac4cb2398918758f609a47e4
Author: Yuumi Yoshida <yy@ey-office.com>
Date:   Sun Aug 3 11:56:59 2008 +0900

    Git移行後

M       html/index.html
M       html/news.html
M       html/style/base.css
% git log  --name-only  
Author: Yuumi Yoshida <yy@ey-office.com>
Date:   Sun Aug 3 12:15:30 2008 +0900

    バグ対応

upload.rb

commit 609aa81ec0a489cdac4cb2398918758f609a47e4
Author: Yuumi Yoshida <yy@ey-office.com>
Date:   Sun Aug 3 11:56:59 2008 +0900

    Git移行後

html/index.html
html/news.html
html/style/base.css

自家製のホームページ更新ツールは、最新のコミットで変更されたファイルのみサーバーに送るようになっているのですが、Subversion から Git への変更は

IO.readlines("|svn log -vq -r #{rev}").select ・・・・
 を ↓
IO.readlines("|git log  --name-status --pretty=format:\"\" -#{n}").select ・・・・

で対応できました。