リビジョン間で修正されたファイルを取得する

忘れないようにメモ。結構使うコマンドです。

リビジョンAからリビジョンBの間に修正があったファイルを取得するにはgit-diffコマンドの --name-statusオプションを利用すれば良い。

git diff --name-status xxxxxxrev1..xxxxxxrev2

と出力されます。

M hogehoge1.txt
A hogehoge2.txt
M fugafuga1.txt
D fugafuga2.txt

通常はこれでよいのですが、cent osでyumを使ってインストールした際にgitのバージョンが古かった為再帰的にみてくれませんでした。

  • rオプションを付けるといいみたいです。

"git log --name-status" does not require you to give "-r" anymore.
As a general rule, Porcelain commands should recurse when showing diff.

gitリリースノート
http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.3.txt

という事をlingrのgit-users.jpで教えて頂きました。*1

http://www.lingr.com/room/git-users.jp/archives/2008/12/18

まとめ

  • gitのバージョンは新しい方がなにかと良さそう
  • git-users.jp++
  • kanaさん++

*1:感謝