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 ・・・・
で対応できました。