はじめに
私は普段 **Tig(てぃぐ)**を使っているのですが、どうも Tig の知名度は意外と低いようです。そして噂に聞いて使い始めても、とっつきづらいなどの理由でやめちゃう人も多いようです。
しかし、最初の壁さえ乗り越えてしまえば、Tigは便利なGitツールとして自身のツールボックスに加えられると思います。
実際に私の経験として、同僚に10分くらいで Tig のインストールから基本操作をレクチャーをしたところ 「Tigめっちゃ便利や・・・!」 という感想を頂いたこともあります。
概要
本記事では、Tigを使うモチベーションからインストール、まず覚えるべき「コミット操作」について書いています。
すなわち私が同僚にしたレクチャーの追体験です。
ターミナルにテーマを設定しているため、スクリーンショットがお使いの環境と異なる方が多いと思いますがご容赦ください
モチベーション
- Gitのコミット操作(ステージ/アンステージ)が素早く行えるようになる。
- diffの確認がしやすくなる。
他にもあるのですが、まずはgit add (-p)
や git reset
が素早く簡単に出来るようになる、くらいの認識で使いはじめるモチベーションとしては十分かと思います。
インストール
Brew
Brew(ぶりゅー)は Mac 用のパッケージ管理ツールです。
インストールしてない方は、ターミナルを起動して以下のコマンドを貼り付けて実行しましょう。(2016/03/22時点)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
最新のインストール手順は、以下の公式サイト(日本語)をご参照ください。
http://brew.sh/index_ja.html
Tig
Brewを使ってインストールします。
以下のコマンドをターミナルで実行しましょう。
$ brew install tig
使い方
ファイル単位のステージ/アンステージ
まずはGitリポジトリ(普段gitコマンドを利用しているディレクトリ)に移動します。
そしてコミット用に何か追加・編集した上で、(git add
やgit commit
を使う代わりに)以下のコマンドで Tig を起動します。
$ tig
そうすると以下のようなコミットログが羅列されたような画面が起動します。
(Mainビューと呼ばれるようです)
さて、ここであれこれ考える前にさかさずs
をタイプし、Statusビューに移行しましょう。
(最初からあれこれやろうとすると訳が分からなくなるので、これ重要です)
Gitに慣れている方であれば説明するまでも無いかもしれませんが、それぞれ以下の状態を表しています。
項目 | 説明 |
---|---|
Changes to be committed: | ステージ済み(コミット対象) |
Changed but not updated: | 変更したけれど未ステージ(コミット対象外) |
Untracked files: | まだGitで管理されていないファイル(コミット対象外) |
カーソルキーの上下(またはj,k
)でカーソルを移動することができ、u
でステージ(git add
)が行えます。
ステージされました。(README
がChanges to be committed:
のエリアに移動しました)
そして同じように、Changes to be committed:
の一覧でu
を押すと、アンステージ(git reset
)が行えます。
Statusビューでの基本操作はこれだけです。
キー操作 | 説明 |
---|---|
カーソルキーの上下 or j, k
|
カーソル移動 |
u |
ファイル単位のステージ/アンステージ |
diff単位でステージ/アンステージ
次にファイル内の特定の差分だけステージ/アンステージする操作(git add -p
相当)についてです。
さきほどのファイルが選択された状態でEnter
を押すと、画面の右側(または画面の横幅が小さい場合は下側)にdiffビューが表示されます。
ここでは以下のようなキー操作が行えます。
キー操作 | 説明 |
---|---|
j, k |
カーソル移動 |
ctrl-u, ctrl-d |
ページ単位で上下移動 |
u |
ハンク(変更点のかたまり)単位でステージ/アンステージ |
1 |
行単位でステージ/アンステージ |
shift-j, shift-k |
ファイル選択(左側のビュー)を上下移動 |
q |
diffビューを閉じる |
とりあえずj, k
で移動して、ステージしたいハンク(図で言うとピンク文字に囲まれた範囲内)まで移動したらu
でステージ、困ったらq
で戻る くらいで覚えておけば大丈夫です。
コミット
Statusビュー上でshift-c
を押すことでgit commit
した時と同じように、vimが立ち上がりコミットメージを入力できる状態となります。
ただし、diffビューが表示されているときはshift-c
を押しても無反応なので、必ずq
を押してdiffビューを閉じた状態で操作を行います。
ここまで行ったステージ/アンステージ操作は、きちんとgit操作として反映されています。q
を何度か押してTigを終了させてから、git commit
コマンドでコミットすることも可能です。
終了
すでに何度か登場していますが、Tigではq
を押すことで「ひとつ前の画面に戻る」ことが出来ます。
なので、困ったときはq
を連打していればTigを終了することが出来ます。
まとめ
ここまでで登場したViewと、そこで利用可能な主なキー操作をまとめます。
Mainビュー
最初に表示される画面です。
キー操作 | 説明 |
---|---|
s |
Statusビューに移行 |
当然ながら他にも操作がありますが、本記事では割愛します。
Statusビュー
現在の状態を確認して、ファイル単位のステージ/アンステージ操作が行える画面です。
キー操作 | 説明 |
---|---|
カーソルキーの上下 or j, k
|
カーソル移動 |
u |
ハンク(変更点のかたまり)単位でステージ/アンステージ |
Enter |
選択中のファイルをdiffビューで表示 |
diffビュー
diffを確認し、ハンクあるいは行単位のステージ/アンステージ操作が行える画面です。
キー操作 | 説明 |
---|---|
j, k |
カーソル移動 |
ctrl-u, ctrl-d |
ページ単位で上下移動 |
u |
ハンク(変更点のかたまり)単位でステージ/アンステージ |
1 |
行単位でステージ/アンステージ |
shift-j, shift-k |
ファイル選択(左側のビュー)を上下移動 |
q |
diffビューを閉じる |
共通
キー操作 | 説明 |
---|---|
q |
ひとつ前の画面に戻る |
最後に
さて、実際に10分で使いはじめられたでしょうか?
実はQiita上には、すでにTigに関する記事がそれなりに存在しています。
(中にはgif動画で分かりやすく解説されているものもありますし、私も大変お世話になりました)
ただ、冒頭でも触れましたがTigの存在を知りつつも 「面倒そう」「とっつきづらい」「インストールしたけどよく分からない」 といった理由で、Tigの便利さを体感せずに避けてしまう開発者が身近に多かったため、あえてこのような入門記事を書いてみました。
この目論見が成功するかは分かりませんが、 一人でも多くの開発者がTigライフを楽しめれば幸いです。