以前、Gitでコミット間の差分ファイルをまとめて出力する方法を以下の記事で紹介した。
しかし、記事内で紹介したコマンドでは、コミット間に削除ファイルが含まれる場合、下記のエラーが発生することがある。
fatal: pathspec ‘hogehoge.jpg’ did not match any files
今回はこのエラーを解決するgit archive
コマンドを紹介する。
masterブランチと別のコミットIDの差分ファイルを取得する例
それでは早速例を見ていこう。
git archive --format=zip --prefix=archive/ master `git diff --name-only --diff-filter=ACMRTUXB 07b4d39 master` -o archive.zip
上記コマンドは、masterブランチからコミットID(07b4d39)までの差分をarchive.zipファイルに出力する例だ。
--diff-filter
オプションにACMRTUXB
を指定するのがポイントで、こうすることで削除ファイルを無視してそれ以外の差分のみを出力することができる。