こんにちは。SI部の藤本です。
今回は「tig」というgit CUIツールのご紹介です。
tigは、コンソール上で使えるgitブラウザです。
git をコマンドラインから使っていると、過去の diff を見るときにちょっと面倒だったり
結局、わざわざWebブラウザでGitHubを開いてコミット履歴を見たりしていました。
そこで、 tig をインストールしてみたのでご紹介します。
■セットアップが簡単ですぐ使い始められる
tigは依存関係が少なくポータブルな実装でありインストールが簡単です。
会社から提供する開発サーバーであっても、社員ひとりひとりが所有するPCやMacであっても、
yumやbrewなどのパッケージマネージャから少ない手順でインストールすることができます。
(パッケージがない環境であっても、make && make installも簡単です)
■起動も操作も簡単
起動は tig コマンドだけで済みます。
UNIXコマンドの多くはコマンドライン引数の確認・習熟が使いこなしの鍵です。
git関連コマンドも例外ではありませんが、初学コストが高いことは否めません。
tigを起動すればgitリポジトリを操作していることが自明になります。
その操作についても、基本の操作体系はviに近いところがありますが、
複雑なキーストロークは無いため癖の少ないシンプルな構成です。
不慣れなgitコマンドの操作に対して、tigによる操作はキー1つの押下で1つのアクションが実行されるため操作が容易です。
■TUIツールなため高いポータビリティ
社内の開発環境はそれぞれ異なるかと思います。
Webサイト開発事業であれば開発サーバーを立ててログインして利用することが多いかもしれませんし、
tigはTUI(ターミナル上のテキストで表現されたGUI)ツールであるため、
リモートでもローカルでもターミナル上で同じように動きます。
そのため、もし複数の事業を行っており、部署ごとにリモート環境だったりローカル環境だったりする会社であっても
tigを使えなくなることは無いかと思いますので、tigの使い方を覚えて無駄になりづらいです。
■高いカスタマイズ性
tigは使用するのにハードルが低いだけでなく、高度なカスタマイズを行い長く使える自由度も備えています。
デフォルト設定の基本操作を獲得した後は独自のコマンドをキーにバインドするなどして、
さらに使いやすいツールに仕上げていくことが簡単にできます。
■基本的な使い方
Git レポジトリ内で tig コマンドを打つと、カレントブランチの変更履歴が表示されます。
h でヘルプが見られるので、ビューの切り替え方法などの操作方法を調べることができます。
キーバインドがいろいろ用意されてます。
tig コマンドに引数を渡す事で、開き方を変えることができます。
# 特定の1つまたは複数のブランチを表示:
$ tig master new_feature
# 全てのブランチを表示:
$ tig –all
# リモートブランチの最新コミットを表示:
$ tig origin/HEAD
# 2つのブランチ間の差を表示:
$ tig test..master
# 単一ファイルの変更点を表示:
$ tig — README.rdoc
# 特定のリビジョンにおける README.rdoc ファイルの内容を表示:
$ tig show v3.2.5:README.rdoc
# README.rdoc ファイルの、ある期間のリビジョンを表示:
$ tig –after=”2012-01-01″ –before=”2012-06-11″ — README.rdoc
# README.rdoc ファイルの、直近 1 週間のリビジョンを表示:
$ tig –since=1.week — README.rdoc
コードのそれぞれの行を、誰が、いつコミットしたのかを表示:
$ tig blame README.rdoc
# 引数が何もなければ現在の branch を表示します
$ tig
# branch 名を指定できます。
$ tig test master
# 全ての branch を表示するには –all を使用します
$ tig –all
# 二つの branch 間の差を見る
$ tig test..master
# 一つのファイルの履歴を見る
$ tig — FILENAME
# 特定のリビジョンの特定のファイルを見る
$ tig show VERSION:FILENAME
# 日付の範囲内の履歴を見る
$ tig –after=”2013-01-01″ –before=”2013-04-01″ — FILENAME
■まとめ
GUIも扱いやすく便利なのですが
CUIはかゆいところに手が届くというように、細かな操作をすることが可能です。
自分もまだまだ使いこなせてはいないのですが、これから使い続けていきたいです。
上記で紹介した内容以外にもたくさんの機能があるようなので、
Git ユーザの皆さんは是非使ってみましょう !