カテゴリー
コンピューター

【Git】コミット間の差分のディレクトリ、ファイルを圧縮して取得する

ポイント

  • git archivegit 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 が出力されましたわ♪

おわりに

次のページが参考になりました。ありがとう存じます♪

以上です。

コメントを残す