シナリオ:完全に切断された履歴を持つリポジトリ。例えば。共通のgitの履歴を持たない別のリモートから。 (通常これはgitサブツリーのシナリオで発生します)git cherry-common historyのないコミット間でdiffを選ぶ?
共通の履歴がなくても、これらの2つのコミットの差分をチェリーピックすることはできますか?
git cherry-pick -X subtree=vendor/package aaa/aaa..bbb/bbb
サブツリーがなければ、これは単純だったでしょう:
私は(-X subtree=sub/dir
オプションとサブディレクトリに)これを試してみました
(およびActiveは、これら二つのいずれかとの共通の歴史を持っていないコミット)
git cherry-pick aaa/aaa..bbb/bbb
ここで、aaa/aaaとbbb/bbbは、切断された履歴を持つ2つのコミットです。
残念ながら、これは機能しません。aaa/aaa..bbb/bbbはdiffとして読み込まれるのではなく、他のものとして読み込まれます。
git show aaa/aaa..bbb/bbb
と同じことがありますが、git diff aaa/aaa bbb/bbb
とはまったく異なります。例えば。両方が同じファイルを持っている場合、git diffは空ですが、git show a..bはbのみを表示しますが、aは表示しません。
注:私の個人的な使用例は、サブツリーの背景です。私は人工的な使用の場合を避けるためにこれを言及しています。ここで人々は通常、実際の質問の代わりにユースケースの妥当性を議論し始めます。
まず、一般的なケースに対処してから、サブツリーのケースに対処してください。
gitが適用されます良いアイデアです!しかし、私はあなたの命令が約束されたことをするのかどうかはわかりません。私はチェリーピックを参照 – donquixote
問題は、それが唯一の( - これがポイントです実際には存在しません)/ BBBをBBBするには、aaa/AAAから一流のコミットの全範囲、最後のコミットをしませ選ぶということです。 – donquixote