私は Git の大ファンですが、そのためほとんどの UI (ユーザーインターフェース)、特に IDE に統合されているものに関してはそれほどの大ファンではありません。これらの UI は複雑でややこしいのです。これらはいくつかの一般「VCS」言語をコマンドにマップしようとします。または隠しすぎるので、何が起こっているのか理解しずらくしてしまいます。更にひどい場合: Tcl/Tk で書かれています…

端的に言えば、私はこれらの UI を信頼していません。

コマンドラインは私のためのものです。自分のコマンドラインは好きなので、これは素晴らしいものです。ほとんどいつでも履歴の「グラフィック」ビューを見られることや、コミットを準備している時に少し助けてもらえるのは良いことです。

tig で入力する。tig はテキストモード、 Jonas Fonseca によって書かれた git 用の ncurses ベースのユーザーインターフェースです。手短に言えば、Outlook に対する Mutt、Emacs に対する Vim、Firefox に対する w3mです。私はいつもこれを使っていますが、あまり使っている人がいないようなので、少し宣伝することにしました。ではなぜ tig はすごいのでしょうか?

すさまじく速いから

本当に。3 文字タイプすると、瞬時に表示されます。マウスに関する問題や他のウィンドウへの alt タブ、JVM が起動するのを待って苛々しなくてすみます。必要な時はいつでもあなたの指先にあります。これは文字通り何分の一秒かでJIRA コードベースの 50,000 個のコミットをロードします。

履歴ビュー

tig を起動した時の初期設定ビューは履歴ビューです。これは基本的に git log で、履歴を表示するために少しASCII アートが使われています (g でグラフを隠すことができます)。議論なしに、これはカレントブランチを表示します。また、ブランチ名をパスするか、または全てのブランチに --all をパスすることができます。または git ログが予想するコミットの範囲でこれをパスすることもできます (例えば tig master..branch)。矢印キーまたは j/k でコミットをナビゲートできます。/ キーを使って検索します (サマリーまたはオーサーで一致を行います)

コミットで Enter を押しながら、分割された差分ビューでそのコミットを開きます。

tig-2

次に j/k キーを使って差分ビューをナビゲートできます。差分の最初にはコミットが触ったファイルのリストがあります。これらの一つを選んで Enter キーを押すと、差分のファイルの冒頭に直接ジャンプします。 を押して差分ビューを閉じます (q を二回押すと tig を終了します)。

履歴ビューのコミットで t を押すとツリービューが開きます。このビューでは、git checkout をせずに、ある時点での正確な状態で、リポジトリのコンテンツをブラウズします。(矢印キーと Enter キーを使用するだけです)。

ステータスビュー

これは素晴らしい機能だと思います。私が一番よく使うものです。tig status で始める場合、またはメインビューで shift-S を押すと、ステータスビューに移動します。これは git status に似ていますが、インタラクティブです。あなたが変更またはステージしたファイル、変更したけれどまだステージしていないファイル、まだ git によって追跡されていないファイルを見ることができます。ステージされていないファイルまたは追跡されていないファイルを選んで u を押すと、ステージされます。ステージされたファイルを選んで u を押すと、ステージが解除されます。厄介な git reset HEAD <file> コマンドを覚える必要はありません。ファイル上で を押してコミットされていない変更を全てファイルに復元することもできます。

ファイル上で Enter キーを押すと、そのファイルに行なった変更の差分 (diff) ビューを見ることができ (ビューを閉じるには q を押します)、コミットしたいまたはしたくないものを簡単にレビューすることができます。更に良いことは、j/k キー (ラインごとに) または @ キー (チャンクごとに) を使って差分上をナビゲートできることです 次に u を押すと、カレントの差分チャンクだけがステージされます (@@ で始まる差分のセクション)。1 を使って一つのラインだけをステージすることもできます。使いやすいことを除いて、これが git add -i の能力の全てです。

コミットする準備ができたら、shift-C を押して、コミットメッセージを入力するためにお気に入りのエディタを開きます (開いている差分ビューを先に閉じるのを忘れないでください)。

tig-4

Blame ビュー

誰があなたの美しいコードを駄目にしたのか、誰がこの嫌らしいバグを持ち込んだのか知りたいですか?単に tig blame <file> を実行しましょう。これは git blame または Git -> IDEA のAnnotate (注釈) に似ています。単にラインを選択し、Enter を押してください。そのラインに触れた最後のコミットが表示されます。

tig-6

ページャーモード

あなたが欲しい情報だけを表示するように調整した、素敵な git log コマンドを持ってますか?そのアウトプットを tig にパイピングするだけで、きれいに色づけし、前後に簡単にスクロールできるようします。それから、コミットのハッシュを含むライン上にいる時は、Enter を押すだけでそのコミットを見ることができます。これはほどんどの Git コマンドで使えるはずです。

入手方法は?

OS X を使用している場合は、Homebrew を通じて間単にインストールできます。ほとんどの Lunux ディストリビューションには tig 用のパッケージがあります。OS X を使っていない場合は、いつでも http://jonas.nitro.dk/tig/ からソースを入手して、自分でコンパイルできます。Cygwin でも使えると思うので、試してみない理由はありません!

man ページを見たり tig の横の を押すのをためらわないでください:これを使ってできることはもっとたくさんあります。

 

*本ブログは Atlassian Blogs の翻訳です。本文中の日時などは投稿当時のものですのでご了承ください。
*原文 : 2013 年 5 月 7 日 “git? tig!