LoginSignup
2
4

More than 3 years have passed since last update.

【ターミナル改造③】GitをCUI操作でも効率的かつ視覚的に扱える「tig」を導入

Posted at
  • 白黒ターミナルを利用する生活が多くなってきた無機質生活に、少々彩りを加えるために奔走する記事第三弾。
  • ネットや現実世界で魔改造ターミナルを見つけて行く中で、機能性や実用性ではなく、高ビジュアル性のみ気になってしまう。
  • 今回は、gitをCUIで操作する際の便利ツール「tig」を導入して、gitの効率化を図ることにしよう。

概要

  • Gitを、CUIでも視覚的に操作できるクライアントツール。
  • add(ステージング)やcommit・log(履歴)確認等の基本操作を、ターミナル上でもGUIのような視覚性や操作性・効率性で扱える。
  • そのため、サーバー上での操作も、視覚的に効率的に行うことができる。
  • 公式サイト

作業環境

  • Mac OS X 10.13.4Mac OS X 10.13.4
  • Homebrew 2.1.3
  • git version 2.17.2
    • ※Windowsでの作業は、こちらを参考にする。

インストール

  • 下記のコマンドをうち、tigをインストールする。
# tigのインストール
$ brew install tig
# バージョン確認
$ tig -v

基本操作

  • 今回はgitリポジトリとして、github上で動画学習リポジトリとして有名なcs-video-coursesを使う。
    • いつもお世話になっております。
  • ※そのため、このリポジトリをgit cloneで自分の環境にいれておく。

メイン画面起動

  • tig操作では、最初にメイン画面(履歴画面)を起動して、そこで各操作をしていく。
  • 下記のコマンドで、メイン画面を表示する。
    • ※操作は、gitリポジトリがあるところで行う。
# 現在いるブランチでの、メイン画面起動。
$ tig
# 全てのブランチでの、メイン画面起動。
$ tig -all

移動

  • 下記にしたがって、画面内を移動していく。
内容 キー
下移動 j
上移動 k
ページごとの下移動 ctrl + d
ページごとの上移動 ctrl + u
下移動(2画面ある場合の左画面) ctrl + n
上移動(2画面ある場合の左画面) ctrl + p

設定画面記述

  • デフォルトの操作に加えて、独自にキー操作を設定することで、より幅広い操作が可能となる。
  • 下記のコマンドをうち、~/.tigrcファイルを作成。
# .tig設定ファイル作成
$ touch ~/.tigrc
  • 作成後、ひとまず中身を下記の最低限のものにする。
~/.tigrc
set main-view = id date author commit-title:graph=yes,refs=yes
bind refs n ?git checkout -b "%(prompt Enter new branch name: )" %(branch)
bind refs P ?git push origin %(branch)
bind refs L ?git pull origin %(branch)
bind main ! ?git reset --soft HEAD^

早見表

  • 下記の表は、以下説明する操作をまとめた各一覧。
  • ※以下からの操作は、上記の操作でメイン画面を起動した状態で行う。
  • ※以下からの操作は、.tigrcで設定しないと行えない操作もあるため、設定後に行う。
内容 キー
メイン画面 m
状態確認画面 s
操作一覧画面 h
ブランチ一覧確認画面 r
変更ファイルステージング s」で状態確認画面表示後、対象ファイル上で「u
※ステージング解除も同様
1行のみステージング s」で状態確認画面表示後、対象ファイルÉnter押下で中身確認して、指定行で、1
※ステージング解除は上記と同様に「u
コミット入力画面起動 s」で状態確認画面表示後、対象ファイル上で,「Shift + c」でコミット入力エディタが起動して、編集して保存。
プッシュ r」でブランチ画面表示後、対象ブランチ上で、「Shift + p
プル r」でブランチ画面表示後、対象ブランチ上で、「Shift + l
※チェックアウト先を確認して行う。
ブランチ切り替え r」でブランチ画面表示後、対象となる切り替えブランチにカーソル当てて、「Shift + c
外部コマンドの受付 :!<外部コマンド>
例 : 「:!git checkout -b ブランチ名
ブランチ削除 r」でブランチ画面表示後、対象となる削除ブランチにカーソル当てて、「!
編集の廃棄 s」と「Enter」で編集のdiff画面表示後、「!
ファイル一覧画面 指定のコミットにカーソルを当て、「t
各コミット履歴画面 t」で、ファイル一覧画面表示後、「b
画面更新 Shift + r
ブランチ作成 r」でブランチ画面表示後、「n」と入力して、ベースブランチ名にカーソルを当て、名前を入力。

メイン画面起動

  • メイン画面の切り替えは、mキーで行う。

image.png

状態確認画面

  • 状態確認画面の切り替えは、sキーで行う。

image.png

操作一覧画面

  • 操作一覧画面の切り替えは、hキーで行う。

image.png

ブランチ一覧確認画面

  • ブランチ一覧確認画面の切り替えは、rキーで行う。

image.png

ブランチ作成

  • ブランチ作成の切り替えは、nキーで行う。
  • rでブランチ画面表示後、nと入力して、ベースブランチ名にカーソルを当て、名前を入力。
  • ※この機能はデフォルトでは設定されていないため、~/.tigrcでキーバインドとして設定されている必要がある。

image.png

変更ファイルステージング

  • 変更ファイルステージングは、uキーで行う。
  • sキーで状態確認画面を開き、画面上の「Changes not staged for commit:」の対象ファイル上で、uキーをクリック。
  • ※ステージング解除の場合、「Changes to be committed:」の対象ファイル上で、再びuをクリックすれば戻る。

image.png

1行のみステージング

  • 一部の行のみステージングの切り替えは、1キーで行う。
  • sキーで状態確認画面を開き、対象ファイルをÉnter押下で中身を確認して、指定行で、1キーをクリック。
  • ※ステージング解除の場合、上記と同様

コミット入力画面起動

  • コミット入力画面起動の切り替えは、shift + cキーで行う。
  • sで状態確認画面を開き、画面上の「Changes to be committed:」の対象ファイル上で、shift + cキーをクリックしてコミット入力エディタが起動して、メッセージを編集して保存。

image.png

プッシュ

  • プッシュの切り替えは、shift + pキーで行う。
  • rでブランチ画面表示後、対象ブランチ上で、「Shift + p」をクリック。
  • ※この機能はデフォルトでは設定されていないため、~/.tigrcでキーバインドとして設定されている必要がある。

プル

  • プルの切り替えは、shift + lキーで行う。
  • rでブランチ画面表示後、対象ブランチ上で、Shift + l
  • ※チェックアウト先を確認して行う。
  • ※この機能はデフォルトでは設定されていないため、~/.tigrcでキーバインドとして設定されている必要がある。

ブランチ切り替え

  • ブランチ切り替えの切り替えは、shift + cキーで行う。
  • rキーでブランチ画面表示後、対象となる切り替えブランチにカーソル当てて、Shift + cキーをクリック

外部コマンドの受付

  • 外部コマンドの受付の切り替えは、:!<外部コマンド>キーで行う。
  • 例 : :!git pull origin master

ブランチ削除

  • ブランチ削除の切り替えは、!キーで行う。
  • rでブランチ画面表示後、対象となる削除ブランチにカーソル当てて、!キーをクリック

編集の廃棄

  • 編集の廃棄の切り替えは、!キーで行う。
  • sキーで状態確認画面を開き、「Changes not staged for commit:」の対象ファイルをEnterキー押下で編集のdiff画面表示後、!キーをクリック。

image.png

ファイル一覧画面

  • ファイル一覧画面の切り替えは、tキーで行う。
  • mでメイン画面を開き、任意のコミット上で、tキーをクリック。

image.png

各コミット履歴画面

  • 各コミット履歴画面の切り替えは、tbキーで行う。
  • mでメイン画面を開き、任意のコミット上でtキーをクリックして、ファイル一覧を開き、各ファイル上で、bキーをクリック。

画面更新

  • 画面更新の切り替えは、shift + rキーで行う。

まとめ

  • 今回は、CUIでのgit効率化ツールということで、賢人技術者同士で嗜まれている「インターフェース論争」とは全く無縁であることを生かし、雰囲気でCUIツールを密かに使いながら、記事を書く。
  • このtigも随分前からあるらしいが、エンジニア歴約1年の私としては、昔からある便利ツールの掘り起こし作業は、毎回至福の極み。
  • 次回も賢人技術者が昔から当然のように扱っている「便利ツール」を、真っ当な今更顔で調べて行くことにしよう。

参考

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4