Eclipseで日常Git操作
すでに git clone されて、Eclipseに import されていることが前提です。git cloneに関しては別ページにまとまっています。
- 組み込みのEGitプラグイン
- Package Explorer上のGitメニュー
- 新しいブランチを作成
- 新しいブランチをプッシュ
- ブランチを切り替える
- git pull
- git commit
- git push
- Gitの履歴(History)を見る
- ローカル修正とGit最新の差分を見る
- ローカル修正をGit最新に置き換える (破棄)
- コンフリクト時の対応
- jfluteなショートカットでgit操作
組み込みのEGitプラグイン
ここでは、Eclipseに組み込まれている EGitプラグインを前提としています。
(おそらく)どのエディションでも組み込まれているので、新たにインストールする必要はないでしょう。(一番シンプルな for Java Developer で入っているので)
Package Explorer上のGitメニュー
Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team を選択すると、Gitのメニューが表示されます。
新しいブランチを作成
Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Switch to - New Branch... を選択すると、ブランチ作成ダイアログが開きます。
デフォルトで現在のブランチが Source となり、新しいブランチ名を入力して Finish すると、ブランチ作成ができます。 (Check out new branchにチェックが入っていれば、自動的に新しいブランチに切り替わります)
この時点では、まだローカルリポジトリ(ローカルPC上のGitリポジトリ)にしか作成されていません。 接続しているサーバーリポジトリに新しいブランチを反映させるためには、ブランチのプッシュをする必要があります。 (コミットのプッシュとは操作が違いますので注意)
新しいブランチをプッシュ
Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Push Branch '現在のブランチ名'... を選択すると、現在のブランチのプッシュができます。
ダイアログが開きますが、基本的にはデフォルトでNext/NextしてFinishで良いでしょう。
このプッシュは、ブランチ作成後の最初の一回だけです。コミットのプッシュは別操作になります。
ブランチを切り替える
Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Switch to - [切り替えたいブランチ名] を選択すると、選択したブランチに切り替わります。
メニュー上に切り替えたいブランチがない場合は、Other... を選択するとすべてのブランチを選択することができます。
git pull
Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Pull を選択すると、git pullができます。 (Pull... ではなく Pull の方で)
git commit
Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Commit... を選択すると、git commitができます。
コミットダイアログが表示されますので、コミットしたいファイルを Staged Changes に入れて、コミットメッセージを入れて Commit しましょう。もし、そのまま一緒にプッシュしても良いのであれば、Commit & Push すると良いです。
git push
Package Explorerの対象プロジェクトを選択して、controlクリック (右クリック) でコンテキストメニューを表示して、Team - Push to Upstream を選択すると、git 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操作する一番のメリットは手軽さですから、それを最大限活かさないと。右クリックしている場合ではありません。
ただ、デフォルトではショートカットがほとんど割り当てられていません。 なので興味のある猛者は、ワークスペース設定の Preferences の Keys 設定画面にて割り当ててみましょう。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利用中にgit操作が出てきても本当に楽に過ごせます。
ただ、別のプログラミング言語では使えないので、汎用的な方法はちゃんと覚えておきましょう。