gitで差分納品ファイル作成

gitで差分納品ファイル作成

差分の納品ファイルを作ってと言われたときに細々とコピペするとミスも出てきてしまうので、gitを使って差分納品ファイルを作るといいですよって話です。

まず初めに

powershellとgit bashではコマンド置換が異なるようで、参考サイトにあるバッククォートを利用したコマンド置換はエラーを吐きます。

powershell で実行する場合は「$()」を使ってコマンド置換を行います。

参考

https://webmanab-html.com/tip/extract-diff-file/

まずはcommitのIDを取得

コマンドは、以下の通り

git log --oneline

ここで、取得したID(数字)を利用して差分をとります。

以下のようなものが出ます。一番下が初回のコミットになります。

5908150 (HEAD -> master) dist
504c3af initial

差分ファイルの出力

先ほど取得したcommitのIDをもとに
– [to_commitID]には、変更後のID
– 今回の場合は、5908150
– [from_commitID]には、変更前のID
– 今回の場合は、504c3af
を入力します。

コマンドは以下の通り。

powershell用

git archive [to_commitID] $(git diff --name-only [from_commitID] [to_commitID] --diff-filter=ACMR) -o diff.zip

git bash用

git archive [to_commitID] `git diff --name-only [from_commitID] [to_commitID] --diff-filter=ACMR` -o diff.zip

実行はこんな感じ

powershell用

git archive 5908150 $(git diff --name-only 504c3af 5908150 --diff-filter=ACMR) -o diff.zip

完成!

diff.zipというファイルができていたら成功です。
その他の差分出力などやりたい方は調べるといろいろ出てきます。
powershellでもできるのでvscode上で完結できそうです。

ポートフォリオ・お問合せはこちら