EGitでマージしてみる
前回はGitのmergetoolコマンドでp4mergeを使うように設定し、マージ作業を行う方法を簡単にですが紹介しました。今回はコマンドラインのGitではなく、EGitを使ってやってみます。
EGitとは?
Java Developerならご存知の、IDEであるEclipseでGitを使うためのEclipseプラグインです。Eclipse.orgで公開されています。
詳細は【コラム】イマドキのIDE事情 (52) EclipseでGitを使おう! EGitを試してみる | エンタープライズ | マイナビニュース などで日本語の解説があるのでそちらを参照。
Eclipseは元々デフォルトではCVS用プラグインが組み込まれていました。次第にSVNが主流となり、SVNのEclipseプラグイン(SubversiveまたはSubclipse)を別途インストールして使っている方が多いかと思います。
しかし今年リリースされたEclipse3.7からは、パッケージ*1によってはデフォルトでこのEGitが組み込まれるようになりました。SVNのプラグインって中々標準パッケージに入らないよなぁ〜と数年前に思ってましたが、Gitが追い越すとは全く思ってもいませんでした。
EGitでマージしてみる
前回と全く同じケースでマージしてみます。masterブランチとtopicブランチで同一のファイルを修正し、masterにtopicをマージしてみます。
- まずはマージの実行。マージはプロジェクトを右クリック>Team>Mergeを選択し、マージしたいブランチを選びます。
もしくは、Historyビューからブランチを右クリックしてMergeを選択でもOK。
- コンフリクトが起きると赤い競合のマークが表示されます。ここでマージツールを使います。競合を解決したいファイルやフォルダを右クリック>Team>Merge Toolを選択します。注意点として、プロジェクトのトップフォルダを右クリックしてMerge Toolを選択するとエラーになります(Empty path not permittedと出る。たぶんバグ)。
- Merge Toolを開く際に以下のダイアログが表示されます。ここではUse HEAD...の方を選択してOKをクリックする。
- Merge Toolのエディタで競合を解決します。p4mergeと比べると高機能ではないですが、一応共通の親、マージ先、マージ元の3ペインで表示可能です。ここでマージ先の画面を修正し、保存します。
- 保存した後は、コマンドラインと同様Git add, commitをします。プロジェクトを右クリック>Team>Addした後に、プロジェクトを右クリック>Team>Commitを行います。
- コミットログを修正するなら適宜修正してコミットを実行する。
- 以上でマージは終了です。Historyビューを見るときちんとマージされていることが分かります。