私はTimのソリューションが本当に好きですが、時々私はvimdiffで微妙に変わってしまいます。この問題に対する私の解決策は粗末ですが、私はvimが好きなので私のために働きます。
私はブランチのdiffはvimdiff私difftoolとして設定している、その後、選択的にマージする:
git difftool <branch> <file>
は、その後、私は現在のブランチのバージョンとのペインに移動し、時には(vimの中で、このISNを元に編集を「tは必要な、時にははvimdiff/tmpにバージョンを開きます)と、読み取り専用モードを無効にします。
:e <file>
:set readonly!
今、私は私が欲しいものを適用するために、このようなdo
とdp
としてVimのパッチツールを使用し、他の少しを行うことができます私が行くように編集。私が完了したら、ファイルを保存し、vimから抜け出し、通常の編集のようにgitでファイルをステージングしてコミットします。
私が言ったように、これはあまり洗練されていませんが、非常に強力で、まだ完全にコマンドラインにあります。 gitは自動的にマージメッセージを表示しないので、明確なコミットメッセージを必ず追加してください。
vimdiff example http://j.mp/1dZVllt
'git add -p'が見つかりました。それは非常に強力です。あなたがすでにコミットしている場合(チェリーピックで '--no-commit'を使用しなかった場合や、コミットの1つである場合など)、' git reset HEAD^'を使用してコミットのインデックスを巻き戻すことができます変更を 'git add -p'で追加して、ステップごとにコミットします。コミットがブランチの先端にない場合は、 'git rebase -i'を使って問題のコミットを編集することができます。 – Cascabel
これは本当にありがとう! –
いいウォッシュスルー。 ** git cherry-pick SHA1' – Hulvej