1. ホーム
  2. git

[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能

2022-02-03 02:21:55

質問

特定のコミットで変更・追加されたファイルのリストを取得し、それらをエクスポートしてファイル構造を持つパッケージを生成したいのですが、可能でしょうか?

パッケージを取得し、サーバー上で展開することです。多くの理由から、私はレポを自動的にプルするフックを作成することができず、サーバーを更新し続けるための最も簡単な方法は、このパッケージを生成することです。

どのように解決するのですか?

git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $commit_id
  1. git diff-tree -r $commit_id :

    指定されたコミットとその親(トップディレクトリだけでなく、すべてのサブディレクトリを含む)の差分を取ります。

  2. --no-commit-id --name-only :

    コミット SHA1 を出力しない。完全な差分ではなく、影響を受けるファイルの名前のみを出力します。

  3. --diff-filter=ACMRT :

    このコミットでは、追加、コピー、変更、リネーム、またはタイプが変更されたファイル (例: ファイル → シンボリックリンク) のみを表示します。これは、削除されたファイルを除外します。


コメントから更新しました。
質問の文脈と以下のコメントに基づいて、以下のコマンドで ACMRT ファイルを .tar ファイルをそのフォルダ構造で表示します。

git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $commit_id | tar -czf file.tgz -T -