Eclipseで日常Git操作

すでに git clone されて、Eclipseに import されていることが前提です。git cloneに関しては別ページにまとまっています。

組み込みのEGitプラグイン

ここでは、Eclipseに組み込まれている EGitプラグインを前提としています。

(おそらく)どのエディションでも組み込まれているので、新たにインストールする必要はないでしょう。(一番シンプルな for Java Developer で入っているので)

Package Explorer上のGitメニュー

Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team を選択すると、Gitのメニューが表示されます。

Eclipse GitContextMenu basic

新しいブランチを作成

Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Switch to - New Branch... を選択すると、ブランチ作成ダイアログが開きます。

Eclipse GitContextMenu branch-new menu

デフォルトで現在のブランチが Source となり、新しいブランチ名を入力して Finish すると、ブランチ作成ができます。 (Check out new branchにチェックが入っていれば、自動的に新しいブランチに切り替わります)

Eclipse GitContextMenu branch-new open-dialog

この時点では、まだローカルリポジトリ(ローカルPC上のGitリポジトリ)にしか作成されていません。 接続しているサーバーリポジトリに新しいブランチを反映させるためには、ブランチのプッシュをする必要があります。 (コミットのプッシュとは操作が違いますので注意)

新しいブランチをプッシュ

Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Push Branch '現在のブランチ名'... を選択すると、現在のブランチのプッシュができます。

Eclipse GitContextMenu branch-push

ダイアログが開きますが、基本的にはデフォルトでNext/NextしてFinishで良いでしょう。

このプッシュは、ブランチ作成後の最初の一回だけです。コミットのプッシュは別操作になります。

ブランチを切り替える

Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Switch to - [切り替えたいブランチ名] を選択すると、選択したブランチに切り替わります。

Eclipse GitContextMenu branch-switch

メニュー上に切り替えたいブランチがない場合は、Other... を選択するとすべてのブランチを選択することができます。

git pull

Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Pull を選択すると、git pullができます。 (Pull... ではなく Pull の方で)

Eclipse GitContextMenu pull

git commit

Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Commit... を選択すると、git commitができます。

Eclipse GitContextMenu commit

コミットダイアログが表示されますので、コミットしたいファイルを Staged Changes に入れて、コミットメッセージを入れて Commit しましょう。もし、そのまま一緒にプッシュしても良いのであれば、Commit & Push すると良いです。

git push

Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Push to Upstream を選択すると、git pushができます。

Eclipse GitContextMenu push

サーバーリポジトリ側で他の人の修正が入っている場合は、その修正をローカルに Pull してからでないと Push できません。 Push でエラーになったら、とりあえず Pull してからもう一度 Push してみましょう。

Gitの履歴(History)を見る

Package Explorer上で履歴を見たいファイルを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Show in History を選択すると、そのファイルの履歴が見れます。

ローカル修正とGit最新の差分を見る

Package Explorer上で履歴を見たいファイルを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Compare With - HEAD Revision を選択すると、差分が見れます。 (Teamじゃないので注意)

ローカル修正をGit最新に置き換える (破棄)

Package Explorer上でローカル修正を履きしたいファイルを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Replace With - HEAD Revision を選択すると、ローカル修正が破棄されます。 (元に戻せないので注意しましょう。本当に破棄していいのでしょうか?)

コンフリクト時の対応

コンフリクトした場合は、コンフリクトしたファイルをマージして、そのファイルを選択して controlクリック (右クリック) でコンテキストメニューを表示して、Team - Add to Index を選択すると、コンフリクトしたファイルがコミット可能ファイルになります。

jfluteなショートカットでgit操作

そもそもgit操作はあまりEclipseでやらず、汎用的なgitコマンドやSource Treeでやる人が多いでしょう。 その方が別のプログラミング言語を使う時に操作に困らないですから。

それでも「Eclipse上でgit操作をしたい!」という猛者の方には、ショートカットで操作することがオススメです。 Eclipse上でgit操作する一番のメリットは手軽さですから、それを最大限活かさないと。右クリックしている場合ではありません。

ただ、デフォルトではショートカットがほとんど割り当てられていません。 なので興味のある猛者は、ワークスペース設定の PreferencesKeys 設定画面にて割り当ててみましょう。Mac想定となります。

Fetch from Upstream
shift + alt + U (Update: Fetch)
Pull
shift + alt + P (Pull)
Commit...
shift + alt + C (Commit)
Push to Upstream
shift + alt + V (Cの隣だから、CommitしてPushの流れ)
Push (new) Branch
shift + alt + B (Branch)
Check out Branch
shift + alt + command + B (checkout Branch)
Compare with Head Rev.
shift + alt + L (Local difference)
Show in History
shift + alt + H (History)

※ローカル修正を破棄する Replace with Head Rev. は気軽にできると危ないのでショートカット化していません。

Eclipse Keys settings basic

日常的に使う☆マークが付いているものだけでも良いでしょう。 これを手に馴染ませて息を吸うかのごとくできるようになると、Eclipse利用中にgit操作が出てきても本当に楽に過ごせます。

ただ、別のプログラミング言語では使えないので、汎用的な方法はちゃんと覚えておきましょう。