通常、コマンドラインでgitを使用します。
しかし、マージの競合がある場合、私はVimを使用してそれらを解決します(個人的には逃亡プラグインでそれを行います)。注:逃亡者は、Vim内からの多くのgit操作に適しています。私のお気に入りの機能は、マージ競合の3方向の差分です。
gitはgit mergetoolを介してvimdiffでこれをサポートします。逃亡者をインストールしましたが、手動でセットアップできます(@Jay Thompsonに感謝)。
手動設定:
git config --global merge.tool vimdiff
git mergetool <file with conflicts>
出力は、以下で説明するものとわずかに異なります(私はこれを個人的に使用していません)。しかし、原理は同じですが、結果を含む4番目のウィンドウが下部にあります。
Fugitiveでセットアップする
vim-fugitiveはVimのgit wrapper / integrationプラグインです。それは多くのことを行うことができ、競合の解決はそれらの1つです。
<Install the Fugitive Plugin>
vim <file with conflicts>
:Gdiff
- ビュー2(左):ブランチ上にあったコード。
- ビュー1(中央):マージされたコード(競合あり)
- ビュー3(右):コードにマージされたコード。
これで、他の2つのビューから中央のビュー(すべての手動修正を含む)にテキストを引き出して取得できます。すべての競合を手動で解決したら、vimdiffを終了します
を使用:diffget <view number>
し:diffput <view number>
て、ビュー間で物事をプルおよびプッシュできますが。私は個人的にそれが非常に便利だとは思わない。すべてのコードはすでに中央のビューにあります。そのため、競合が解決されるまで、そのビューを手動で編集したいだけです。エディターウィンドウの両側で両方のバージョンのコードを表示できることは非常に便利ですが。
また、ここでの使用の非常に良いデモ