git-diffで差分ファイルのみをarchive.zipにする
やりたいこと
- クライアント案件で、本番サーバーへのアクセス権がない。
- 更新作業の際には差分ファイルのみを納品するように要求されている。
git archiveで差分抽出
git archiveコマンドで、前回納品時とのdiffを抽出してzip化する
|
|
git diffでmasterブランチ(前回納品時の状態を想定)との差分ファイルリストを取得して、git archiveに渡してあげる。
これでアーカイブ化できました。
–diff-filterを使う
上記の手法だと差分の中に削除したファイルも含まれてしまい、以下のエラーメッセージが出ます。
|
|
削除したファイルはgit archive対象のリストに渡らないようにすれば良さそうです。
公式ドキュメントのgit-diffのページを見ると、--diff-filterというオプションがありました。
Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R)
このオプションを使って追加したファイル(A)と編集したファイル(M)だけにフィルタリングされたリストが作れそうです。
|
|
これでOK。
困ったときは公式ドキュメントに限りますね。