`git stash --patch` は選択的なスタッシュを可能にし、どの変更を保存するかを制御できます。各変更(ハンク)について、スタッシュする、スキップする、または終了するかのオプションが表示されます。これは、異なるファイル内の無関係な変更を分離するのに役立ちます。ハンクは、`s` オプションを使用してより細かい制御のために小さな部分に分割できます。`git stash -p` は、ステージされたファイルを保持するために `--keep-index` と組み合わせたり、特定のファイルタイプを対象とするためにパス指定子と組み合わせたりできます。名前付きスタッシュは、整理のために `save "name"` で作成できます。`--include-untracked` オプションを使用すると、新しいファイルをスタッシュできます。部分的なスタッシュの取り消しは、`git stash show -p | git apply -R` を使用して実現できます。スタッシュの競合は、`git stash apply --index` を使用してより小さなチャンクで解決できます。スタッシュは、`git stash show -p > file.patch` を使用してパッチファイルとして共有できます。
dev.to
Day 18/30 - git stash --patch – Stash only specific changes interactively
