逃亡者との対立を解決することは素晴らしいことです。Painless Merge Conflict Resolution in Gitを読んだ後 、行レベルだけでなく単語レベルでも変更を表示する方法を考え始めました。
すべての例/ケースは、 painless_git_conflicts_resolution repoに基づいています。ハブgit clone
は、コマンドをより簡潔にするために使用されました。
diff3
紛争スタイルを無効にした逃亡者。
hub clone ryrych/painless_git_conflicts_resolution fugitive_no_diff3
cd fugitive_no_diff3/
git checkout beta
git merge origin/master
vim roses.txt
:Gdiff
結果は次のとおりです。
問題は、すべての行が何らかの方法で変更されたことしか確認できないことです。この例は非常に短いですが、 3 行目にofが追加されていることに気付いた人は何人いますか?
RubyMine はそれを解決できますが、常にではありませんが、多くの場合、diff マークが残り、diff の強調表示がありません。このスクリーン ショットには diff マークはありませんが、「コントラスト」がないため、競合を解決するのが非常に難しくなっています。
diff3 を有効にした逃亡者 + 共通の祖先を表示:
show base in fugitive.vim conflict diff stackoverflow question で、受け入れられた答えを試してみましたが、解決策は改善されませんでした。
hub clone ryrych/painless_git_conflicts_resolution fugitive_with_diff3
cd fugitive_with_diff3/
git checkout beta
git merge origin/master
vim roses.txt
:split
:Gdiff
[Ctrl][W][J]
:Gedit :1
opendiff としてmergetool
hub clone ryrych/painless_git_conflicts_resolution opendiff
cd opendiff/
git checkout beta
git merge origin/master
git mergetool
そしてほら!
もちろん、これで問題は解決しますが、1 つのシステム専用に設計された外部ツールに頼らざるを得なくなります。要約すると、Vimでopendiffと同様のことを達成することは可能ですか?