0
1

Git diffを用いた納品差分ファイルの作成方法を解説

Posted at

gitを用いてソース運用を行っていく中で、とある地点から変更があったものだけを抽出して納品したい場合、git diffコマンド有効的です。

本記事では、git diff コマンドを用いた差分ファイル作成方法を詳しく解説します。

git archive コミットID `git diff --name-only 新しいコミットID 古いコミットID --diff-filter=d` -o ファイル名.zip

このgitコマンドでは、古いコミットID から 新しいコミットID までの差分(変更点)を抽出し、zipファイルで保存するコマンドです。

git archiveコマンドは、指定されたコミット、ブランチ、ツリーなどのGit Refからアーカイブファイルを作成します。

--diff-filter=dは、コミット間で削除されたファイルを除外するコマンドです。これがないと、削除したファイルも差分ファイルとして格納されて、削除したいのに間違ってサーバーにアップロードしてしまった、なんてことが発生します。

もし先方側でファイルをFTPなどで直接アップデートするような運用方法の場合、納品ファイルと共にdeleteするファイルも一緒に共有するようにしてください。

ちなみにdiff-filter=dをdiff-filter=Dと大文字にすることで、削除されたファイルのみが抽出されます。これは--diff-filter=R(リネームされたファイル)や--diff-filter=A(追加されたファイル)も同様です。

-oは出力ファイルを示すために使用されます。saveNameのところは、保存したいファイル名を入力します。

たとえば、コミットID:0000000000とコミットID:1111111111間の取得して20250401納品分というファイル名でzip形式で保存したい場合、以下のようなコマンドになります。

git archive 0000000000 `git diff --name-only 1111111111 0000000000 --diff-filter=d` -o 20250401納品分.zip
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1