rerere
特定のファイル パターンのマージ解決のみを記憶して適用するようにgit を構成できますか? すなわち:ちょうどパターンにpom.xml
。
1 に答える
これは難しい問題ですが、マージ操作の直後 (ただし、手動で解決する前) にスクリプトを呼び出すことを含む解決策を考えることができます。
.git/rr-cache
まず、競合解決 ( )のキャッシュは、ファイル パスではなくブロブ ハッシュによって格納されます。解像度が実際にどのファイルから来たかを示すものは何もないので、そのディレクトリをハッキングすることは実行可能な解決策ではないと思います.
メンテナ Junio Hamano からのこの引用は、rerere がファイルごとではなくマージごとであるという事実にも当てはまります。
「現在のマージとは関係のない適切な解決策が記憶されているかどうかは気にしません。それらをすべて削除してください」---それが「rm -fr .git/rr-cache」です為に。
...ファイルを選択的に削除すること.git/rr-cache
は、ユースケースの自動化にはあまり適していないため、もちろん役に立ちません。
悪用する機能forget
は、パススペックを取るサブコマンドである可能性があります。ただし、「忘却」はマージのコンテキストでのみ発生する 可能性があるため、.gitignore
静的に適用できるものとは根本的に異なります。
しかし、おそらく、次のようなスクリプトを呼び出すマージ後のフックを持つことができます。
競合するファイルを繰り返します。
git diff --name-only --diff-filter=U
「リレレを解除」したいすべてのファイルについて、それを忘れてください:
git rerere forget -- path/to/file
...そして競合を復元します。
git checkout -m path/to/file
次に、覚えておきたいファイルの rerere 解像度をそのまま残して、通常どおりマージを続行します。
「再記憶」するファイルのリストは、リポジトリ (おそらく というファイル.reremember
) にチェックインし、スクリプトからクエリすることができます。