私はTimのソリューションが本当に好きですが、vimdiffをいじくり回すのが好きなこともあります。この問題に対する私の解決策は大雑把ですが、vimが好きなのでうまくいきます。
私はvimdiffをdifftoolとして設定し、選択的にマージするためにブランチをdiffします。
git difftool <branch> <file>
次に、現在のブランチのバージョンが表示されているペインに移動し、vimでオリジナルを編集し(これが必要ない場合もありますが、vimdiffが/ tmpでバージョンを開く場合もあります)、読み取り専用モードを無効にします。
:e <file>
:set readonly!
これで、do
やなどのvimのパッチツールを使用して、dp
必要なものを適用したり、その他の小さな編集を行ったりすることができます。完了したら、ファイルを保存し、vimを終了してから、通常の編集のようにgitでファイルをステージングしてコミットします。
私が言ったように、これは特に洗練されていませんが、それは非常に強力であり、それでも純粋にコマンドラインにあります。gitにはマージメッセージが自動的に含まれないため、必ず明確なコミットメッセージを追加してください。
vimdiffの例http://j.mp/1dZVllt