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。
困ったときは公式ドキュメントに限りますね。