ファイル名だけ取得
git diff –name-only コミットID..コミットID
git diff --name-only 234..235
ファイル名と新規追加・更新・削除を取得
git diff –name-status コミットID..コミットID
git diff --name-status 234..235
git diff 更新ステータスの見方
M 修正
A 追加
C コピー
R リネーム
D 削除
R100
っていうステータスが出ることがあるが、これは、
「Rename された」もので「内容は100%一致するよ」の意。
コミットIDを調べるには
git log
ファイル自体を取得してzipで固める
こちら(qiita)の記事がとてもわかり易かったです…!!シェルスクリプトもありがたく使わせていただいております。
上記のシェルスクリプトで、最新の変更だけを取得するやり方
以下のコマンドを発行する。
$ git_diff_archive.sh 1
「1」ってのが、最新から1個前との差分ってこと。
例
現在のコミットから一個前のコミットの差分ファイルを抽出する
git archive --format=zip --prefix=21-03-23_sabun/ HEAD `git diff --diff-filter=d --name-only master branch_name` -o 21-03-23_sabun-src.zip
–prefix で指定した21-03-23_sabun/ 配下にzipができるかと思ったけど、zipの中に21-03-23_sabun/ ができた。
–diff-filter=d オプション
diff のオプションにしていしている、
--diff-filter=d
だけど、「d」と小文字で指定すると、Deleteを除外するという意味。
--diff-filter=D
のように「D」と大文字で指定すると、Deleteのみ抽出される。
qiitaの記事にあげてくださってるシェルスクリプトの関数呼び出し記述
基本的なこだと思うが、このシェルスクリプトを単体で使おうと思ったら、シェルスクリプト内の最下行あたりに以下も追記する。(関数の外に記述する)
git_diff_archive $1 $2
コメント