SourceTreeなどを使えばGUIで差分のあるファイルを確認したり、GUIのDiffツールを起動したりと便利なのですが、ファイル数が数万とかあるとどうも不安定というか、調子が悪いんですよね。
コマンドラインでgit diffしてもいいんですが、その場で修正は出来ないのでいい方法がないかと探していた所git difftoolなるコマンドを使えば良いらしいと分かりました。
ただし、デフォルトではFileMergeが起動するのですが、イマイチ使いにくいんで、DIFFMERGEが起動するよう設定します。
Merge(git mergetool)用の設定
$ git config --global merge.tool diffmerge $ git config --global mergetool.keepBackup false $ git config --global mergetool.diffmerge.cmd "diffmerge --merge --result=\$MERGED \$LOCAL \$BASE \$REMOTE" $ git config --global mergetool.diffmerge.trustExitCode true
Diff(git difftool)用の設定
$ git config --global diff.tool diffmerge $ git config --global difftool.diffmerge.cmd "diffmerge \$LOCAL \$REMOTE"
cat ~/.gitconfig 等にて、設定が反映されているか確認します。
使い方
コマンドラインで編集している(差分がある)ファイルを指定します。
ファイルを指定しない場合は、差分のあるファイルを順次Launchするか聞かれます。
$ git difftool modifiedFile.php Viewing: 'modifiedFile.php' Launch 'diffmerge' [Y/n]:
yまたはエンターでDIFFMERGEが起動します。
参考
こちらを参考にさせて頂きました。ありがとうございます!
http://qiita.com/awakia/items/a07416d5b5957ff96165