Eclipse Git(以下、EGit)はEclipse上から使うことができるGitプラグインです。
しかし、正直言って使いづらいです。
私は(Windowsなので)TortoiseGitを使っています。
SorceTreeも使ってみたんですが、Windowsだと右クリックメニューからいろいろ操作できるTortoiseGitのほうが使いやすいです。
TortoiseGitは置いといて、今回はEGitがなぜ使いづらいのかについて考えてみました。
あくまで主観なので、EGitを使いこなせている人にとっては使いづらい点ではないかもしれません。
現状のEGitについてですので今後のアップデートで改善されていくかもしれません。
というか、Eclipse上からGit使えるのは楽なので改善してほしい・・・。
hookがうまく動かない
gitでは、hookという機能があります。
これは、gitのイベント(コミット、プッシュなど)と連動して各種コマンド(gitコマンドではなくOSのコマンド)を実行させることができる機能です。
.git/hooksの中にコマンドを記述したファイルを配置することで、各種イベント発生時にコマンドが実行されます。
これを使うことで、例えばコミットのタイミングでJenkinsを実行して自動テストを走らせる、などのことができます。
しかし、EGitではファイルを配置しても実行されないものがあります(ちゃんと動くものもあるようです)。
EGitは独自にGitの各処理を実装してるっぽいので、hookの実装は今後の更新待ちって感じかと思います。
コマンドがわかりづらい
コマンドがいまいち元々のGit用語やコマンドと合っていなかったり、変なところにあったりしてわかりづらいです。
例えば、フェッチ/プッシュはEGitでは「アップストリームにフェッチ/プッシュ」という名前になっています。
確かに各ブランチの上流ブランチをアップストリームと呼ぶので間違ってはないです。
でも「リモートにフェッチ/プッシュ」や単に「フェッチ/プッシュ」だけの方が分かり易いなあと思います。
あとは、「変更前に戻す」というコマンドが「チーム」ではなく「置換」の中のコマンドで行います。
Git関連のコマンドはできるだけまとめてほしいので、「チーム」のところに一緒に入っていてくれたほうが分かり易いなあ。
マージツールが使いづらい
EGitのマージツールはこんな感じです。
左側がローカル、右側が(競合した)リモートの内容です。
基本手には、右側から適用したい部分を選択して左側に持ってくる、すなわちローカルを書き換えることで最終的なファイルにしていきます。
一方、TortoiseGitのマージツールはこんな感じ。
両方の元の内容を表示した上でそれぞれどちらの差分を使うかどうか決めていくことができます。
これに関してはどっちが使いやすいかは人によるかと。
まとめ
EGitが使いづらい点をまとめてみました。
既にEGitになれている人ならともかく、今から使い始めようとしている人ならTortoiseGitをお勧めします。
まあ、GUI使ってると対応するコマンドがないときも多いので、いざというときにはコマンドを使えるようになっておくのも大事ですね。