共通のマスターブランチと多数の並列ブランチ(インストールごとに1つ)があり、それぞれに特定の変更がほとんどないWebアプリケーションを維持しています。ソースコードはgitで管理されており、マスターブランチからパラレルブランチに機能やバグ修正を転送する必要がある場合に最適なツールです。しかし、機密性が高く、自動マージは通常悪い結果をもたらすファイルはほとんどありません。したがって、何らかの方法でマークを付けることができ、すべてのマージで競合が発生し、手動でマージする必要がある場合、マージははるかに簡単になります。
私は答えを探しました:
- 私が使用しています--no-コミットと--no-ffのマージオプションが、それは同じではありません。
- こことここで誰かが同じ質問をしますが、解決策はありません。
- 同様のケースは、somefile.php merge = oursを含む.gitattributesを使用してファイルがマージされないようにする方法のようです。競合を生成したり、手動マージを強制したりするマージオプションを見つけようとしましたが、今のところ見つかりませんでした。
- 以下を含む.gitattributes:somefile.php -mergeが自動的にマージされることはないため、手動でマージする必要があります。これは90%の解決策ですが、私が求めているのは、自動マージを試して、成功したかどうかに関係なく、競合としてマークすることです。しかし、これはこれまでのところ解決策に最も近いものです。 (...説明してくれたCharles Baileyに感謝します...)
- 誰かが書き込みカスタムマージドライバ(にお勧め1、2)が、どのように行うには、それは私にははるかに明確からです。
編集:バリアント4。説明
git fetch
最初に行い、次にを使用するgit difftool <file> FETCH_HEAD
ので、リモートブランチの変更をローカルに手動で適用できます。