ポイント
git archiveとgit diffを組み合わせる。- git archive –format=zip –output=
`git diff –name-only ` git diff --name-only <commit1> <commit2>- –name-only: 差のあるファイル名のみを出力する。
git archive --format=zip --output=<file> <tree-ish> <path>- コミットをアーカイブ出力する。
- –format=zip: 指定したファイル形式で出力する。
- –output=
: 指定したファイル名で出力する。 : 指定したコミット、ブランチ、HEAD などを出力する。 : 指定したパス、ファイルを出力する。
実践
2つ前のコミットと HEAD の差分をアーカイブいたします。
$ # 比較対象のコミットを確認
$ git log HEAD^^
commit b981ac0a08b8f3c9a6055c080d69a04fbbec23ba
Auther: user1 <user1@example.com>
Date: Mon Jun 20 10:58:16 2016 +0900
最初のコミット
$
$ # ログの確認
$ git log --all --decorate --graph --oneline
* 363e030 (HEAD -> master) Merge branch 'feature2-2'
|\
| * 45ac64d (feature2-2) feature2-2完成
| * 64b9ebf (feature2) feature2完成
* | 7d60d9c Merge branch 'feature1'
|\ \
| |/
|/|
| * 824c7ae (feature1) feature1完成
|/
* b981ac0 最初のコミット
$
$ # 2 つ前のコミットと HEAD の差分をアーカイブ
$ git archive --format=zip --output=archive.zip HEAD `git diff --name-only HEAD HEAD^^`
$
これで archive.zip が出力されましたわ♪
おわりに
次のページが参考になりました。ありがとう存じます♪
- git archive -Gitで管理しているファイルをアーカイブ| Gitテックラボ | [Smart]
- gitで差分ファイルを抽出する – Qiita
- [Git]コミット間の差分ファイルを取得する方法 | Coffee Breakにプログラミング備忘録
- Gitでexportするときはgit archiveとgit checkout-indexのどちらがよいか · DQNEO起業日記
以上です。
