Gitとは?

最近、分散バージョン管理システムが注目を集めている。分散バージョン管理システムでは、CVSやSubversionなどこれまでのバージョン管理システムと違い、単一のリポジトリで集中的に管理するのではなく、複数のリポジトリを利用することができ、必要に応じてリポジトリ間の同期を取ることになる。

開発者は自分専用のローカルリポジトリを持ち、普段はローカルリポジトリに対してコミットを行い、必要になった時点で中央リポジトリに同期するといった使い方が可能だ。また、リポジトリをローカルに持つことによって、オフライン時でもコミットができ、オンラインになったタイミングでリモートリポジトリと同期を取るといった運用も可能になる。

図1 分散バージョン管理システム

主な分散バージョン管理システムとしてはGit、Mercurial、Bazaarなどがある。とりわけGitはLinuxカーネルの開発にも使用されていることで有名だ。

今回はEclipseからGitを利用するためのEGit]というプラグインを紹介する。EGitはこちらの更新サイトからインストールすることができる。

Gitリポジトリからのソースの取得

試しにEGitを使用してEGit自体のソースコードをgitリポジトリから入手してみよう。インポートダイアログで「Git Reporsitory」を選択し、Gitリポジトリからのインポートを行う。まずはGitリポジトリの情報を入力する。

図2 Gitリポジトリからのインポート(1)

続いてクローンするブランチを選択する。

図3 Gitリポジトリからのインポート(2)

その後、ローカルの保存先を選択すると、その場所にローカルリポジトリが作成され、先ほどの画面で選択したブランチがクローンされる。

図4 Gitリポジトリからのインポート(3)

図5 Gitリポジトリからのインポート(4)

なお、すでにワークスペース上に存在するプロジェクトをGitで管理したい場合は右クリック→[チーム]から[プロジェクトの共用]→[Git]を選択すればよい。

EGitでのgitの操作

CVSやSubversionと同じく、Gitで管理されているプロジェクト上で右クリック→[チーム]からGitに対する操作を行うことができる。コミットやアップデート、ブランチの作成、プッシュなど一通りの操作を行うことができる。

図6 Gitの操作

[チーム]メニューから[Show in Resource History]を選択すると、ヒストリービューにリソースの変更履歴を表示することができる。ファイルの差分を確認することも可能だ。

図7 リソースヒストリー

[チーム]メニューから[Branch...]を選択することでブランチの切り替えや、新たなブランチの作成を行うことができる。

図8 ブランチの切り替え/作成

EGitはEclipse標準のCVS機能やSubcripse/SubversiveといったSubversion向けのプラグインと比較するとリポジトリブラウザがない、同期化ビューがサポートされていないなど、機能面ではまだまだといった印象だ。また、まだサポートされていないGitコマンドがあったり、動作にも若干不安定な部分が見られるなど、あくまで筆者の主観だが、現時点では実用には少々厳しいかもしれないと感じた。

まとめ

Gitをはじめとする分散バージョン管理システムは今後、より多くの場面で利用されていくことだろう。Eclipse上からGitを利用するためのプラグインの開発が進められていることは喜ばしいことだ。現時点では機能面で不足を感じる部分もあるものの、Gitの基本的な操作はすでにサポートされており、今後に期待のプラグインといえるだろう。

本稿では取り上げなかったが、Mercurial向けのEclipseプラグインとしてMercurial Eclipse、Bazaar向けのEclipseプラグインとしてbzr-eclipseが存在するほか、Windows上からこれらの分散バージョン管理システムを扱うためのツールなどの開発も行われている。また、GitHubやSourceForge.jpなどGitをサポートするサービスも増えてきている。分散バージョン管理システムが身近になる日もそう遠くはないだろう。