明日から3月です。春です。春といえば出会いと別れの季節。「出会い(merge)」と「別れ(branch)」を初心者でも効率よく行うために,グラフィカルなインターフェースを備えたGit/Bazaarクライアントをいくつかご紹介します。
Gitクライアント
Gitは世界でもっとも使われている分散型バージョン管理システムです。Recipeの読者であれば,LinuxカーネルやGitHubなんかでお世話になっている人も多いことでしょう。Ubuntuでもgitパッケージをインストールすることで簡単に導入できます。
ちなみに,Gitは初期状態だと日本語などのマルチバイトのファイル名を数値表現で表示します。git-gui/gitk以外のクライアントはこれを数値のまま表示してしまうため,日本語ファイル名を含む差分を見るときに不便です。以下のコマンドで,数値表現に変更せずそのまま表示するように設定を変更しておくとよいでしょう。
$ git config --global core.quotepath false
git-gui/gitk
git-gui/gitkはGitに公式に組み込まれているGUIクライアントです。gitkがリポジトリの履歴や差分を閲覧するビューワーで,git-guiが各種gitコマンドを実行するためのフロントエンドになります。git-guiからgitkもしくはgitkからgit-guiを呼び出すことも可能です。
Ubuntuだとgit-gui/gitkパッケージをインストールすれば使えるようになります。
$ sudo apt-get install git-gui gitk
例えば任意のリポジトリでコマンドからgitkを起動した画面は以下のような感じになります。ちなみにブランチをすべて表示したい場合は,各コマンドの後ろに--allをつけてください。他のツールでもこの--allオプションが有効な場合があります。
ファイルから「git guiの開始」を選択するとgit guiが起動します。
Tcl/TkベースのUIなので,少し古い感じのするインターフェースとなっていますが,gitで必要な操作を一通りできるのと,軽さが強みです。
Qgit
Qgitはその名のとおりQtベースのGit GUIクライアントです。モダンなインターフェースで,履歴や差分を見たり,そこからパッチを生成することができます。
$ sudo apt-get install qgit
起動方法はリポジトリでqgitコマンドを入力するか,Dashからqgitを検索しリポジトリを追加してください。
ブランチの生成やコミットもできるのですが,gitの細かい操作はActionsを経て実行する必要があり,どちらかというとStGITと連携したパッチ管理システムのインターフェースとしての使い方の方があっているようです。
git-cola
git-colaもまたQtベースのGUIクライアントですが,こちらはPython-Qtを使っています。qgitと違って,マージやpush/pullといった操作も最初から用意されているので,Gitのインターフェースとして使いたいなら,qgitよりもこちらをおすすめします。
$ sudo apt-get install git-cola
ただし,リポジトリからインストールできるのは1.4系列です。数ヶ月前に1.7系がリリースされて,インターフェースも刷新され,履歴をDAG形式で視覚化したgit-dagも強化されているので,新しい方を自分でインストールするのもよいでしょう。
Giggle
Gtk+ベースのGitクライアントだと,GNOMEで開発しているgiggleが有名です。GNOMEのポリシーにあわせた,シンプルでわかりやすいインターフェースが特徴です。
$ sudo apt-get install giggle
ファイルペイン表示からGeditを起動してファイルを編集するなど,Nautilusでのファイル操作を多用している人ならすぐに慣れるでしょう。
ただし,チェックアウトやマージの機能がない,大きなリポジトリの取り込み時や差分表示時に若干もたつくなど,他のクライアントに比べると機能性についてはまだ足りない印象です。
ちなみにgiggle-terminal-view-pluginを使って端末を組み込むこともできるので,履歴の表示などはgiggleで,細かい操作は端末でといった切り分けも可能です。

